Warning: Permanently added '3.92.183.46' (ECDSA) to the list of known hosts. Running: /usr/bin/copr-rpmbuild --verbose --drop-resultdir --build-id 1906571 --chroot fedora-rawhide-x86_64 --detached Version: 0.45 Task: {'bootstrap': 'off', 'build_id': 1906571, 'buildroot_pkgs': [], 'chroot': 'fedora-rawhide-x86_64', 'enable_net': False, 'git_hash': 'ed75ff47db64a5152289b025b63960fd44fcfcd9', 'git_repo': 'https://copr-dist-git.fedorainfracloud.org/git/dormouse/Cython-0.29_py38/neuron.git', 'isolation': 'default', 'memory_reqs': 2048, 'package_name': 'neuron', 'package_version': '7.8.1-8.fc33', 'project_dirname': 'Cython-0.29_py38', 'project_name': 'Cython-0.29_py38', 'project_owner': 'dormouse', 'repos': [{'baseurl': 'https://download.copr.fedorainfracloud.org/results/dormouse/Cython-0.29_py38/fedora-rawhide-x86_64/', 'id': 'copr_base', 'name': 'Copr repository'}, {'baseurl': 'http://kojipkgs.fedoraproject.org/repos/rawhide/latest/$basearch/', 'id': 'http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch', 'name': 'Additional repo http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch'}], 'sandbox': 'dormouse/Cython-0.29_py38--https://src.fedoraproject.org/user/releng', 'source_json': {}, 'source_type': None, 'submitter': 'https://src.fedoraproject.org/user/releng', 'task_id': '1906571-fedora-rawhide-x86_64', 'timeout': 18000, 'uses_devel_repo': False, 'with_opts': [], 'without_opts': []} Running: git clone https://copr-dist-git.fedorainfracloud.org/git/dormouse/Cython-0.29_py38/neuron.git /tmp/copr-rpmbuild-4q6k33wz/obtain-sources/neuron --depth 500 --no-single-branch cmd: ['git', 'clone', 'https://copr-dist-git.fedorainfracloud.org/git/dormouse/Cython-0.29_py38/neuron.git', '/tmp/copr-rpmbuild-4q6k33wz/obtain-sources/neuron', '--depth', '500', '--no-single-branch'] cwd: . rc: 0 stdout: stderr: Cloning into '/tmp/copr-rpmbuild-4q6k33wz/obtain-sources/neuron'... Running: git checkout ed75ff47db64a5152289b025b63960fd44fcfcd9 cmd: ['git', 'checkout', 'ed75ff47db64a5152289b025b63960fd44fcfcd9'] cwd: /tmp/copr-rpmbuild-4q6k33wz/obtain-sources/neuron rc: 0 stdout: stderr: Note: switching to 'ed75ff47db64a5152289b025b63960fd44fcfcd9'. 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 ed75ff4 automatic import of neuron Running: copr-distgit-client sources cmd: ['copr-distgit-client', 'sources'] cwd: /tmp/copr-rpmbuild-4q6k33wz/obtain-sources/neuron rc: 0 stdout: /usr/bin/tail: /var/lib/copr-rpmbuild/main.log: file truncated 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 neuron-7.8.1.tar.gz INFO: Calling: curl -H Pragma: -o neuron-7.8.1.tar.gz --location --remote-time --show-error --fail https://copr-dist-git.fedorainfracloud.org/repo/pkgs/dormouse/Cython-0.29_py38/neuron/neuron-7.8.1.tar.gz/md5/1e6e29fd1c624dac863a3f8832d5a573/neuron-7.8.1.tar.gz % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 8785k 100 8785k 0 0 102M 0 --:--:-- --:--:-- --:--:-- 100M INFO: Reading stdout from command: md5sum neuron-7.8.1.tar.gz Running (timeout=18000): unbuffer mock --buildsrpm --spec /tmp/copr-rpmbuild-4q6k33wz/obtain-sources/neuron/neuron.spec --sources /tmp/copr-rpmbuild-4q6k33wz/obtain-sources/neuron --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1611696497.919279 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 2.9 starting (python version = 3.9.1, NVR = mock-2.9-1.fc33)... 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(/tmp/copr-rpmbuild-4q6k33wz/obtain-sources/neuron/neuron.spec) Config(fedora-rawhide-x86_64) Start: clean chroot Finish: clean chroot Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1611696497.919279/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 Mock Version: 2.9 INFO: Mock Version: 2.9 Start: dnf install No matches found for the following disable plugin patterns: local, spacewalk Copr repository 17 MB/s | 1.8 MB 00:00 Additional repo http_kojipkgs_fedoraproject_org 60 MB/s | 56 MB 00:00 fedora 26 MB/s | 73 MB 00:02 Last metadata expiration check: 0:00:01 ago on Tue Jan 26 21:28:42 2021. Dependencies resolved. ======================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================== Installing group/module packages: bash  x86_64 5.1.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.7 M bzip2  x86_64 1.0.8-4.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 52 k coreutils  x86_64 8.32-15.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 M cpio  x86_64 2.13-8.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 273 k diffutils  x86_64 3.7-7.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 390 k fedora-release-common  noarch 34-0.10 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 20 k findutils  x86_64 1:4.8.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 545 k gawk  x86_64 5.1.0-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 M glibc-minimal-langpack  x86_64 2.32.9000-26.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 110 k grep  x86_64 3.6-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 260 k gzip  x86_64 1.10-3.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 152 k info  x86_64 6.7-8.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 228 k make  x86_64 1:4.3-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 539 k patch  x86_64 2.7.6-13.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 129 k redhat-rpm-config  noarch 180-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 65 k rpm-build  x86_64 4.16.1.2-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 99 k sed  x86_64 4.8-6.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 298 k shadow-utils  x86_64 2:4.8.1-6.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.2 M tar  x86_64 2:1.33-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 895 k unzip  x86_64 6.0-49.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 181 k util-linux  x86_64 2.36.1-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.5 M which  x86_64 2.21-20.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 41 k xz  x86_64 5.2.5-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 215 k Installing dependencies: alternatives  x86_64 1.15-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 35 k audit-libs  x86_64 3.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 113 k basesystem  noarch 11-10.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 6.8 k binutils  x86_64 2.35.1-25.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 5.3 M binutils-gold  x86_64 2.35.1-25.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 747 k bzip2-libs  x86_64 1.0.8-4.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 40 k ca-certificates  noarch 2020.2.41-6.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 353 k coreutils-common  x86_64 8.32-15.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.0 M cracklib  x86_64 2.9.6-24.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 83 k crypto-policies  noarch 20210118-1.gitb21c811.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 56 k curl  x86_64 7.74.0-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 299 k cyrus-sasl-lib  x86_64 2.1.27-6.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 101 k dwz  x86_64 0.13-7.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 126 k ed  x86_64 1.14.2-9.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 75 k efi-srpm-macros  noarch 4-5.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 21 k elfutils  x86_64 0.182-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 525 k elfutils-debuginfod-client  x86_64 0.182-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 32 k elfutils-default-yama-scope  noarch 0.182-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 16 k elfutils-libelf  x86_64 0.182-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 193 k elfutils-libs  x86_64 0.182-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 265 k expat  x86_64 2.2.10-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 104 k fedora-gpg-keys  noarch 34-0.8 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 107 k fedora-release  noarch 34-0.10 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11 k fedora-release-identity-basic  noarch 34-0.10 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 12 k fedora-repos  noarch 34-0.8 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11 k fedora-repos-rawhide  noarch 34-0.8 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 10 k file  x86_64 5.39-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 51 k file-libs  x86_64 5.39-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 591 k filesystem  x86_64 3.14-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 M fonts-srpm-macros  noarch 1:2.0.5-4.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 27 k fpc-srpm-macros  noarch 1.3-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.6 k gc  x86_64 8.0.4-4.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 104 k gdb-minimal  x86_64 10.1-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 3.6 M ghc-srpm-macros  noarch 1.5.0-3.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.7 k glibc  x86_64 2.32.9000-26.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 3.5 M glibc-common  x86_64 2.32.9000-26.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.1 M gmp  x86_64 1:6.2.0-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 320 k gnat-srpm-macros  noarch 4-12.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.2 k go-srpm-macros  noarch 3.0.9-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 25 k guile22  x86_64 2.2.7-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 6.5 M kernel-srpm-macros  noarch 1.0-3.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.2 k keyutils-libs  x86_64 1.6.1-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 31 k krb5-libs  x86_64 1.19-0.beta2.1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 734 k libacl  x86_64 2.2.53-9.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 23 k libarchive  x86_64 3.5.1-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 391 k libattr  x86_64 2.4.48-10.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 18 k libblkid  x86_64 2.36.1-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 100 k libbrotli  x86_64 1.0.9-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 322 k libcap  x86_64 2.46-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 65 k libcap-ng  x86_64 0.8.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 32 k libcom_err  x86_64 1.45.6-4.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 27 k libcurl  x86_64 7.74.0-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 285 k libdb  x86_64 5.3.28-45.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 760 k libeconf  x86_64 0.3.8-4.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 24 k libfdisk  x86_64 2.36.1-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 151 k libffi  x86_64 3.1-27.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 33 k libgcc  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 91 k libgcrypt  x86_64 1.9.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 511 k libgomp  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 262 k libgpg-error  x86_64 1.41-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 212 k libidn2  x86_64 2.3.0-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 104 k libmetalink  x86_64 0.1.3-13.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 31 k libmount  x86_64 2.36.1-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 131 k libnghttp2  x86_64 1.42.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 76 k libnsl2  x86_64 1.3.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 58 k libpkgconf  x86_64 1.7.3-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 36 k libpsl  x86_64 0.21.1-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 61 k libpwquality  x86_64 1.4.4-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 104 k libselinux  x86_64 3.2-0.rc1.1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 84 k libsemanage  x86_64 3.2-0.rc1.1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 116 k libsepol  x86_64 3.2-0.rc1.1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 286 k libsigsegv  x86_64 2.13-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 27 k libsmartcols  x86_64 2.36.1-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 59 k libssh  x86_64 0.9.5-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 209 k libssh-config  noarch 0.9.5-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11 k libstdc++  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 693 k libtasn1  x86_64 4.16.0-3.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 75 k libtirpc  x86_64 1.3.1-0.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 95 k libtool-ltdl  x86_64 2.4.6-38.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 36 k libunistring  x86_64 0.9.10-9.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 516 k libutempter  x86_64 1.2.1-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 26 k libuuid  x86_64 2.36.1-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 24 k libverto  x86_64 0.3.1-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 21 k libxcrypt  x86_64 4.4.17-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 121 k libxml2  x86_64 2.9.10-9.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 744 k libzstd  x86_64 1.4.7-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 340 k lua-libs  x86_64 5.4.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 216 k lua-srpm-macros  noarch 1-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.1 k lz4-libs  x86_64 1.9.3-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 67 k mpfr  x86_64 4.1.0-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.4 M ncurses-base  noarch 6.2-3.20200222.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 60 k ncurses-libs  x86_64 6.2-3.20200222.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 329 k nim-srpm-macros  noarch 3-3.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.3 k ocaml-srpm-macros  noarch 6-3.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.7 k openblas-srpm-macros  noarch 2-8.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.2 k openldap  x86_64 2.4.57-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 261 k openssl-libs  x86_64 1:1.1.1i-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.4 M p11-kit  x86_64 0.23.22-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 369 k p11-kit-trust  x86_64 0.23.22-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 141 k pam  x86_64 1.5.1-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 545 k pcre  x86_64 8.44-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 200 k pcre2  x86_64 10.36-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 234 k pcre2-syntax  noarch 10.36-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 143 k perl-srpm-macros  noarch 1-38.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.3 k pkgconf  x86_64 1.7.3-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 41 k pkgconf-m4  noarch 1.7.3-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 14 k pkgconf-pkg-config  x86_64 1.7.3-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 10 k popt  x86_64 1.18-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 59 k publicsuffix-list-dafsa  noarch 20190417-4.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 55 k python-srpm-macros  noarch 3.9-11.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 20 k qt5-srpm-macros  noarch 5.15.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.4 k readline  x86_64 8.1-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 216 k rpm  x86_64 4.16.1.2-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 501 k rpm-build-libs  x86_64 4.16.1.2-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 97 k rpm-libs  x86_64 4.16.1.2-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 326 k rust-srpm-macros  noarch 17-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 9.8 k setup  noarch 2.13.7-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 142 k sqlite-libs  x86_64 3.34.1-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 626 k systemd-libs  x86_64 247.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 546 k tzdata  noarch 2021a-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 432 k xxhash-libs  x86_64 0.8.0-1.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 41 k xz-libs  x86_64 5.2.5-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 91 k zip  x86_64 3.0-27.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 258 k zlib  x86_64 1.2.11-23.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 92 k zstd  x86_64 1.4.7-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 568 k Installing Groups: Buildsystem building group Transaction Summary ======================================================================================================================================== Install 148 Packages Total download size: 58 M Installed size: 224 M Downloading Packages: (1/148): alternatives-1.15-1.fc34.x86_64.rpm 887 kB/s | 35 kB 00:00 (2/148): basesystem-11-10.fc33.noarch.rpm 165 kB/s | 6.8 kB 00:00 (3/148): audit-libs-3.0-1.fc34.x86_64.rpm 2.4 MB/s | 113 kB 00:00 (4/148): binutils-gold-2.35.1-25.fc34.x86_64.rp 20 MB/s | 747 kB 00:00 (5/148): bzip2-1.0.8-4.fc33.x86_64.rpm 4.2 MB/s | 52 kB 00:00 (6/148): bzip2-libs-1.0.8-4.fc33.x86_64.rpm 4.4 MB/s | 40 kB 00:00 (7/148): bash-5.1.0-1.fc34.x86_64.rpm 21 MB/s | 1.7 MB 00:00 (8/148): ca-certificates-2020.2.41-6.fc34.noarc 12 MB/s | 353 kB 00:00 (9/148): coreutils-8.32-15.fc34.x86_64.rpm 22 MB/s | 1.1 MB 00:00 (10/148): cpio-2.13-8.fc33.x86_64.rpm 9.6 MB/s | 273 kB 00:00 (11/148): cracklib-2.9.6-24.fc33.x86_64.rpm 7.9 MB/s | 83 kB 00:00 (12/148): crypto-policies-20210118-1.gitb21c811 7.4 MB/s | 56 kB 00:00 (13/148): coreutils-common-8.32-15.fc34.x86_64. 21 MB/s | 2.0 MB 00:00 (14/148): cyrus-sasl-lib-2.1.27-6.fc33.x86_64.r 10 MB/s | 101 kB 00:00 (15/148): curl-7.74.0-4.fc34.x86_64.rpm 11 MB/s | 299 kB 00:00 (16/148): dwz-0.13-7.fc34.x86_64.rpm 13 MB/s | 126 kB 00:00 (17/148): binutils-2.35.1-25.fc34.x86_64.rpm 22 MB/s | 5.3 MB 00:00 (18/148): diffutils-3.7-7.fc34.x86_64.rpm 9.8 MB/s | 390 kB 00:00 (19/148): ed-1.14.2-9.fc33.x86_64.rpm 2.8 MB/s | 75 kB 00:00 (20/148): elfutils-debuginfod-client-0.182-2.fc 3.9 MB/s | 32 kB 00:00 (21/148): elfutils-0.182-2.fc34.x86_64.rpm 28 MB/s | 525 kB 00:00 (22/148): efi-srpm-macros-4-5.fc33.noarch.rpm 937 kB/s | 21 kB 00:00 (23/148): elfutils-default-yama-scope-0.182-2.f 1.1 MB/s | 16 kB 00:00 (24/148): expat-2.2.10-1.fc34.x86_64.rpm 9.2 MB/s | 104 kB 00:00 (25/148): elfutils-libs-0.182-2.fc34.x86_64.rpm 13 MB/s | 265 kB 00:00 (26/148): elfutils-libelf-0.182-2.fc34.x86_64.r 8.1 MB/s | 193 kB 00:00 (27/148): fedora-gpg-keys-34-0.8.noarch.rpm 13 MB/s | 107 kB 00:00 (28/148): fedora-release-34-0.10.noarch.rpm 1.5 MB/s | 11 kB 00:00 (29/148): fedora-release-common-34-0.10.noarch. 1.9 MB/s | 20 kB 00:00 (30/148): fedora-release-identity-basic-34-0.10 1.3 MB/s | 12 kB 00:00 (31/148): fedora-repos-34-0.8.noarch.rpm 1.4 MB/s | 11 kB 00:00 (32/148): fedora-repos-rawhide-34-0.8.noarch.rp 1.9 MB/s | 10 kB 00:00 (33/148): file-5.39-4.fc34.x86_64.rpm 5.9 MB/s | 51 kB 00:00 (34/148): file-libs-5.39-4.fc34.x86_64.rpm 20 MB/s | 591 kB 00:00 (35/148): findutils-4.8.0-1.fc34.x86_64.rpm 18 MB/s | 545 kB 00:00 (36/148): fonts-srpm-macros-2.0.5-4.fc33.noarch 2.6 MB/s | 27 kB 00:00 (37/148): fpc-srpm-macros-1.3-2.fc33.noarch.rpm 1.6 MB/s | 7.6 kB 00:00 (38/148): filesystem-3.14-4.fc34.x86_64.rpm 21 MB/s | 1.1 MB 00:00 (39/148): gc-8.0.4-4.fc33.x86_64.rpm 6.5 MB/s | 104 kB 00:00 (40/148): ghc-srpm-macros-1.5.0-3.fc33.noarch.r 1.3 MB/s | 7.7 kB 00:00 (41/148): gawk-5.1.0-2.fc33.x86_64.rpm 23 MB/s | 1.0 MB 00:00 (42/148): gdb-minimal-10.1-2.fc34.x86_64.rpm 28 MB/s | 3.6 MB 00:00 (43/148): glibc-minimal-langpack-2.32.9000-26.f 7.3 MB/s | 110 kB 00:00 (44/148): gmp-6.2.0-5.fc34.x86_64.rpm 17 MB/s | 320 kB 00:00 (45/148): gnat-srpm-macros-4-12.fc33.noarch.rpm 1.0 MB/s | 8.2 kB 00:00 (46/148): glibc-2.32.9000-26.fc34.x86_64.rpm 20 MB/s | 3.5 MB 00:00 (47/148): go-srpm-macros-3.0.9-1.fc34.noarch.rp 1.2 MB/s | 25 kB 00:00 (48/148): grep-3.6-1.fc34.x86_64.rpm 15 MB/s | 260 kB 00:00 (49/148): gzip-1.10-3.fc33.x86_64.rpm 7.4 MB/s | 152 kB 00:00 (50/148): info-6.7-8.fc33.x86_64.rpm 16 MB/s | 228 kB 00:00 (51/148): kernel-srpm-macros-1.0-3.fc33.noarch. 926 kB/s | 7.2 kB 00:00 (52/148): keyutils-libs-1.6.1-1.fc34.x86_64.rpm 3.9 MB/s | 31 kB 00:00 (53/148): krb5-libs-1.19-0.beta2.1.fc34.x86_64. 18 MB/s | 734 kB 00:00 (54/148): libacl-2.2.53-9.fc34.x86_64.rpm 3.3 MB/s | 23 kB 00:00 (55/148): libarchive-3.5.1-1.fc34.x86_64.rpm 18 MB/s | 391 kB 00:00 (56/148): libattr-2.4.48-10.fc33.x86_64.rpm 3.3 MB/s | 18 kB 00:00 (57/148): glibc-common-2.32.9000-26.fc34.x86_64 6.7 MB/s | 2.1 MB 00:00 (58/148): libblkid-2.36.1-3.fc34.x86_64.rpm 6.4 MB/s | 100 kB 00:00 (59/148): libcap-2.46-1.fc34.x86_64.rpm 8.4 MB/s | 65 kB 00:00 (60/148): libcap-ng-0.8.2-1.fc34.x86_64.rpm 4.0 MB/s | 32 kB 00:00 (61/148): libbrotli-1.0.9-3.fc34.x86_64.rpm 12 MB/s | 322 kB 00:00 (62/148): libcom_err-1.45.6-4.fc33.x86_64.rpm 4.0 MB/s | 27 kB 00:00 (63/148): libcurl-7.74.0-4.fc34.x86_64.rpm 17 MB/s | 285 kB 00:00 (64/148): libeconf-0.3.8-4.fc33.x86_64.rpm 1.7 MB/s | 24 kB 00:00 (65/148): libdb-5.3.28-45.fc34.x86_64.rpm 19 MB/s | 760 kB 00:00 (66/148): libfdisk-2.36.1-3.fc34.x86_64.rpm 9.6 MB/s | 151 kB 00:00 (67/148): libffi-3.1-27.fc34.x86_64.rpm 4.4 MB/s | 33 kB 00:00 (68/148): libgcc-11.0.0-0.17.fc34.x86_64.rpm 10 MB/s | 91 kB 00:00 (69/148): guile22-2.2.7-1.fc34.x86_64.rpm 25 MB/s | 6.5 MB 00:00 (70/148): libgcrypt-1.9.0-1.fc34.x86_64.rpm 11 MB/s | 511 kB 00:00 (71/148): libgomp-11.0.0-0.17.fc34.x86_64.rpm 5.7 MB/s | 262 kB 00:00 (72/148): libgpg-error-1.41-1.fc34.x86_64.rpm 11 MB/s | 212 kB 00:00 (73/148): libmetalink-0.1.3-13.fc33.x86_64.rpm 4.2 MB/s | 31 kB 00:00 (74/148): libidn2-2.3.0-4.fc34.x86_64.rpm 8.9 MB/s | 104 kB 00:00 (75/148): libmount-2.36.1-3.fc34.x86_64.rpm 12 MB/s | 131 kB 00:00 (76/148): libnsl2-1.3.0-1.fc34.x86_64.rpm 9.2 MB/s | 58 kB 00:00 (77/148): libnghttp2-1.42.0-1.fc34.x86_64.rpm 7.3 MB/s | 76 kB 00:00 (78/148): libpsl-0.21.1-2.fc33.x86_64.rpm 8.3 MB/s | 61 kB 00:00 (79/148): libpkgconf-1.7.3-5.fc34.x86_64.rpm 2.5 MB/s | 36 kB 00:00 (80/148): libpwquality-1.4.4-2.fc34.x86_64.rpm 8.9 MB/s | 104 kB 00:00 (81/148): libselinux-3.2-0.rc1.1.fc34.x86_64.rp 8.3 MB/s | 84 kB 00:00 (82/148): libsemanage-3.2-0.rc1.1.fc34.x86_64.r 13 MB/s | 116 kB 00:00 (83/148): libsigsegv-2.13-1.fc34.x86_64.rpm 3.2 MB/s | 27 kB 00:00 (84/148): libsmartcols-2.36.1-3.fc34.x86_64.rpm 7.3 MB/s | 59 kB 00:00 (85/148): libsepol-3.2-0.rc1.1.fc34.x86_64.rpm 15 MB/s | 286 kB 00:00 (86/148): libssh-config-0.9.5-1.fc34.noarch.rpm 2.2 MB/s | 11 kB 00:00 (87/148): libssh-0.9.5-1.fc34.x86_64.rpm 18 MB/s | 209 kB 00:00 (88/148): libtasn1-4.16.0-3.fc33.x86_64.rpm 8.9 MB/s | 75 kB 00:00 (89/148): libtirpc-1.3.1-0.fc34.x86_64.rpm 10 MB/s | 95 kB 00:00 (90/148): libstdc++-11.0.0-0.17.fc34.x86_64.rpm 23 MB/s | 693 kB 00:00 (91/148): libunistring-0.9.10-9.fc33.x86_64.rpm 25 MB/s | 516 kB 00:00 (92/148): libutempter-1.2.1-3.fc34.x86_64.rpm 3.3 MB/s | 26 kB 00:00 (93/148): libuuid-2.36.1-3.fc34.x86_64.rpm 4.8 MB/s | 24 kB 00:00 (94/148): libverto-0.3.1-2.fc34.x86_64.rpm 3.8 MB/s | 21 kB 00:00 (95/148): libxcrypt-4.4.17-1.fc34.x86_64.rpm 13 MB/s | 121 kB 00:00 (96/148): libtool-ltdl-2.4.6-38.fc34.x86_64.rpm 688 kB/s | 36 kB 00:00 (97/148): libxml2-2.9.10-9.fc34.x86_64.rpm 30 MB/s | 744 kB 00:00 (98/148): lua-srpm-macros-1-3.fc34.noarch.rpm 890 kB/s | 8.1 kB 00:00 (99/148): lua-libs-5.4.2-1.fc34.x86_64.rpm 11 MB/s | 216 kB 00:00 (100/148): libzstd-1.4.7-1.fc34.x86_64.rpm 8.0 MB/s | 340 kB 00:00 (101/148): lz4-libs-1.9.3-1.fc34.x86_64.rpm 4.1 MB/s | 67 kB 00:00 (102/148): ncurses-base-6.2-3.20200222.fc33.noa 2.3 MB/s | 60 kB 00:00 (103/148): make-4.3-2.fc33.x86_64.rpm 11 MB/s | 539 kB 00:00 (104/148): nim-srpm-macros-3-3.fc33.noarch.rpm 1.4 MB/s | 8.3 kB 00:00 (105/148): ncurses-libs-6.2-3.20200222.fc33.x86 18 MB/s | 329 kB 00:00 (106/148): ocaml-srpm-macros-6-3.fc33.noarch.rp 1.7 MB/s | 7.7 kB 00:00 (107/148): openblas-srpm-macros-2-8.fc33.noarch 1.8 MB/s | 7.2 kB 00:00 (108/148): openldap-2.4.57-1.fc34.x86_64.rpm 19 MB/s | 261 kB 00:00 (109/148): mpfr-4.1.0-2.fc33.x86_64.rpm 18 MB/s | 1.4 MB 00:00 (110/148): p11-kit-trust-0.23.22-1.fc34.x86_64. 13 MB/s | 141 kB 00:00 (111/148): p11-kit-0.23.22-1.fc34.x86_64.rpm 14 MB/s | 369 kB 00:00 (112/148): patch-2.7.6-13.fc33.x86_64.rpm 12 MB/s | 129 kB 00:00 (113/148): pam-1.5.1-2.fc34.x86_64.rpm 20 MB/s | 545 kB 00:00 (114/148): openssl-libs-1.1.1i-1.fc34.x86_64.rp 21 MB/s | 1.4 MB 00:00 (115/148): pcre-8.44-3.fc34.x86_64.rpm 9.7 MB/s | 200 kB 00:00 (116/148): pcre2-syntax-10.36-2.fc34.noarch.rpm 13 MB/s | 143 kB 00:00 (117/148): pcre2-10.36-2.fc34.x86_64.rpm 11 MB/s | 234 kB 00:00 (118/148): perl-srpm-macros-1-38.fc33.noarch.rp 709 kB/s | 8.3 kB 00:00 (119/148): pkgconf-m4-1.7.3-5.fc34.noarch.rpm 2.5 MB/s | 14 kB 00:00 (120/148): pkgconf-pkg-config-1.7.3-5.fc34.x86_ 1.6 MB/s | 10 kB 00:00 (121/148): pkgconf-1.7.3-5.fc34.x86_64.rpm 3.6 MB/s | 41 kB 00:00 (122/148): popt-1.18-2.fc34.x86_64.rpm 7.1 MB/s | 59 kB 00:00 (123/148): python-srpm-macros-3.9-11.fc34.noarc 2.4 MB/s | 20 kB 00:00 (124/148): qt5-srpm-macros-5.15.2-1.fc34.noarch 1.6 MB/s | 8.4 kB 00:00 (125/148): publicsuffix-list-dafsa-20190417-4.f 4.1 MB/s | 55 kB 00:00 (126/148): readline-8.1-1.fc34.x86_64.rpm 16 MB/s | 216 kB 00:00 (127/148): redhat-rpm-config-180-1.fc34.noarch. 5.5 MB/s | 65 kB 00:00 (128/148): rpm-build-libs-4.16.1.2-4.fc34.x86_6 11 MB/s | 97 kB 00:00 (129/148): rpm-build-4.16.1.2-4.fc34.x86_64.rpm 8.5 MB/s | 99 kB 00:00 (130/148): rpm-4.16.1.2-4.fc34.x86_64.rpm 18 MB/s | 501 kB 00:00 (131/148): rust-srpm-macros-17-1.fc34.noarch.rp 1.0 MB/s | 9.8 kB 00:00 (132/148): rpm-libs-4.16.1.2-4.fc34.x86_64.rpm 18 MB/s | 326 kB 00:00 (133/148): sed-4.8-6.fc34.x86_64.rpm 18 MB/s | 298 kB 00:00 (134/148): setup-2.13.7-2.fc33.noarch.rpm 9.5 MB/s | 142 kB 00:00 (135/148): systemd-libs-247.2-1.fc34.x86_64.rpm 20 MB/s | 546 kB 00:00 (136/148): sqlite-libs-3.34.1-1.fc34.x86_64.rpm 17 MB/s | 626 kB 00:00 (137/148): shadow-utils-4.8.1-6.fc34.x86_64.rpm 20 MB/s | 1.2 MB 00:00 (138/148): tzdata-2021a-1.fc34.noarch.rpm 16 MB/s | 432 kB 00:00 (139/148): unzip-6.0-49.fc33.x86_64.rpm 13 MB/s | 181 kB 00:00 (140/148): tar-1.33-2.fc34.x86_64.rpm 20 MB/s | 895 kB 00:00 (141/148): which-2.21-20.fc33.x86_64.rpm 4.6 MB/s | 41 kB 00:00 (142/148): xxhash-libs-0.8.0-1.fc33.x86_64.rpm 5.3 MB/s | 41 kB 00:00 (143/148): xz-libs-5.2.5-4.fc34.x86_64.rpm 7.4 MB/s | 91 kB 00:00 (144/148): xz-5.2.5-4.fc34.x86_64.rpm 10 MB/s | 215 kB 00:00 (145/148): zlib-1.2.11-23.fc34.x86_64.rpm 10 MB/s | 92 kB 00:00 (146/148): zip-3.0-27.fc33.x86_64.rpm 17 MB/s | 258 kB 00:00 (147/148): zstd-1.4.7-1.fc34.x86_64.rpm 26 MB/s | 568 kB 00:00 (148/148): util-linux-2.36.1-3.fc34.x86_64.rpm 22 MB/s | 2.5 MB 00:00 -------------------------------------------------------------------------------- Total 41 MB/s | 58 MB 00:01 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Running scriptlet: filesystem-3.14-4.fc34.x86_64 1/1 Preparing : 1/1 Installing : libgcc-11.0.0-0.17.fc34.x86_64 1/148 Running scriptlet: libgcc-11.0.0-0.17.fc34.x86_64 1/148 Installing : crypto-policies-20210118-1.gitb21c811.fc34.noarc 2/148 Running scriptlet: crypto-policies-20210118-1.gitb21c811.fc34.noarc 2/148 Installing : fedora-release-identity-basic-34-0.10.noarch 3/148 Installing : tzdata-2021a-1.fc34.noarch 4/148 Installing : rust-srpm-macros-17-1.fc34.noarch 5/148 Installing : qt5-srpm-macros-5.15.2-1.fc34.noarch 6/148 Installing : publicsuffix-list-dafsa-20190417-4.fc33.noarch 7/148 Installing : pkgconf-m4-1.7.3-5.fc34.noarch 8/148 Installing : perl-srpm-macros-1-38.fc33.noarch 9/148 Installing : pcre2-syntax-10.36-2.fc34.noarch 10/148 Installing : openblas-srpm-macros-2-8.fc33.noarch 11/148 Installing : ocaml-srpm-macros-6-3.fc33.noarch 12/148 Installing : nim-srpm-macros-3-3.fc33.noarch 13/148 Installing : ncurses-base-6.2-3.20200222.fc33.noarch 14/148 Installing : libssh-config-0.9.5-1.fc34.noarch 15/148 Installing : kernel-srpm-macros-1.0-3.fc33.noarch 16/148 Installing : gnat-srpm-macros-4-12.fc33.noarch 17/148 Installing : ghc-srpm-macros-1.5.0-3.fc33.noarch 18/148 Installing : fpc-srpm-macros-1.3-2.fc33.noarch 19/148 Installing : fedora-gpg-keys-34-0.8.noarch 20/148 Installing : fedora-release-34-0.10.noarch 21/148 Installing : fedora-release-common-34-0.10.noarch 22/148 Installing : fedora-repos-rawhide-34-0.8.noarch 23/148 Installing : fedora-repos-34-0.8.noarch 24/148 Installing : setup-2.13.7-2.fc33.noarch 25/148 warning: /etc/hosts created as /etc/hosts.rpmnew Running scriptlet: setup-2.13.7-2.fc33.noarch 25/148 Installing : filesystem-3.14-4.fc34.x86_64 26/148 Installing : basesystem-11-10.fc33.noarch 27/148 Installing : glibc-minimal-langpack-2.32.9000-26.fc34.x86_64 28/148 Installing : glibc-common-2.32.9000-26.fc34.x86_64 29/148 Running scriptlet: glibc-2.32.9000-26.fc34.x86_64 30/148 Installing : glibc-2.32.9000-26.fc34.x86_64 30/148 Running scriptlet: glibc-2.32.9000-26.fc34.x86_64 30/148 Installing : ncurses-libs-6.2-3.20200222.fc33.x86_64 31/148 Installing : bash-5.1.0-1.fc34.x86_64 32/148 Running scriptlet: bash-5.1.0-1.fc34.x86_64 32/148 Installing : zlib-1.2.11-23.fc34.x86_64 33/148 Installing : bzip2-libs-1.0.8-4.fc33.x86_64 34/148 Installing : xz-libs-5.2.5-4.fc34.x86_64 35/148 Installing : elfutils-libelf-0.182-2.fc34.x86_64 36/148 Installing : libstdc++-11.0.0-0.17.fc34.x86_64 37/148 Installing : libxcrypt-4.4.17-1.fc34.x86_64 38/148 Installing : libzstd-1.4.7-1.fc34.x86_64 39/148 Installing : readline-8.1-1.fc34.x86_64 40/148 Installing : gmp-1:6.2.0-5.fc34.x86_64 41/148 Installing : libattr-2.4.48-10.fc33.x86_64 42/148 Installing : libacl-2.2.53-9.fc34.x86_64 43/148 Installing : libcap-2.46-1.fc34.x86_64 44/148 Installing : libcom_err-1.45.6-4.fc33.x86_64 45/148 Installing : libdb-5.3.28-45.fc34.x86_64 46/148 Installing : libuuid-2.36.1-3.fc34.x86_64 47/148 Installing : popt-1.18-2.fc34.x86_64 48/148 Installing : libunistring-0.9.10-9.fc33.x86_64 49/148 Installing : libidn2-2.3.0-4.fc34.x86_64 50/148 Installing : mpfr-4.1.0-2.fc33.x86_64 51/148 Installing : unzip-6.0-49.fc33.x86_64 52/148 Installing : file-libs-5.39-4.fc34.x86_64 53/148 Installing : file-5.39-4.fc34.x86_64 54/148 Installing : sqlite-libs-3.34.1-1.fc34.x86_64 55/148 Installing : alternatives-1.15-1.fc34.x86_64 56/148 Installing : libcap-ng-0.8.2-1.fc34.x86_64 57/148 Installing : audit-libs-3.0-1.fc34.x86_64 58/148 Installing : libffi-3.1-27.fc34.x86_64 59/148 Installing : p11-kit-0.23.22-1.fc34.x86_64 60/148 Installing : libsepol-3.2-0.rc1.1.fc34.x86_64 61/148 Installing : lua-libs-5.4.2-1.fc34.x86_64 62/148 Installing : lz4-libs-1.9.3-1.fc34.x86_64 63/148 Installing : pcre2-10.36-2.fc34.x86_64 64/148 Installing : libselinux-3.2-0.rc1.1.fc34.x86_64 65/148 Installing : sed-4.8-6.fc34.x86_64 66/148 Installing : findutils-1:4.8.0-1.fc34.x86_64 67/148 Installing : libsemanage-3.2-0.rc1.1.fc34.x86_64 68/148 Installing : shadow-utils-2:4.8.1-6.fc34.x86_64 69/148 Running scriptlet: libutempter-1.2.1-3.fc34.x86_64 70/148 Installing : libutempter-1.2.1-3.fc34.x86_64 70/148 Installing : tar-2:1.33-2.fc34.x86_64 71/148 Installing : zip-3.0-27.fc33.x86_64 72/148 Installing : libpsl-0.21.1-2.fc33.x86_64 73/148 Installing : gc-8.0.4-4.fc33.x86_64 74/148 Installing : zstd-1.4.7-1.fc34.x86_64 75/148 Installing : dwz-0.13-7.fc34.x86_64 76/148 Installing : libxml2-2.9.10-9.fc34.x86_64 77/148 Installing : bzip2-1.0.8-4.fc33.x86_64 78/148 Installing : info-6.7-8.fc33.x86_64 79/148 Installing : ed-1.14.2-9.fc33.x86_64 80/148 Installing : patch-2.7.6-13.fc33.x86_64 81/148 Installing : elfutils-default-yama-scope-0.182-2.fc34.noarch 82/148 Running scriptlet: elfutils-default-yama-scope-0.182-2.fc34.noarch 82/148 Installing : cpio-2.13-8.fc33.x86_64 83/148 Installing : diffutils-3.7-7.fc34.x86_64 84/148 Installing : expat-2.2.10-1.fc34.x86_64 85/148 Installing : libmetalink-0.1.3-13.fc33.x86_64 86/148 Installing : keyutils-libs-1.6.1-1.fc34.x86_64 87/148 Installing : libbrotli-1.0.9-3.fc34.x86_64 88/148 Installing : libeconf-0.3.8-4.fc33.x86_64 89/148 Installing : libgomp-11.0.0-0.17.fc34.x86_64 90/148 Installing : libgpg-error-1.41-1.fc34.x86_64 91/148 Installing : libgcrypt-1.9.0-1.fc34.x86_64 92/148 Installing : libnghttp2-1.42.0-1.fc34.x86_64 93/148 Installing : libpkgconf-1.7.3-5.fc34.x86_64 94/148 Installing : pkgconf-1.7.3-5.fc34.x86_64 95/148 Installing : pkgconf-pkg-config-1.7.3-5.fc34.x86_64 96/148 Installing : libsigsegv-2.13-1.fc34.x86_64 97/148 Installing : gawk-5.1.0-2.fc33.x86_64 98/148 Installing : libsmartcols-2.36.1-3.fc34.x86_64 99/148 Installing : libtasn1-4.16.0-3.fc33.x86_64 100/148 Installing : p11-kit-trust-0.23.22-1.fc34.x86_64 101/148 Running scriptlet: p11-kit-trust-0.23.22-1.fc34.x86_64 101/148 Installing : libtool-ltdl-2.4.6-38.fc34.x86_64 102/148 Installing : libverto-0.3.1-2.fc34.x86_64 103/148 Installing : pcre-8.44-3.fc34.x86_64 104/148 Installing : grep-3.6-1.fc34.x86_64 105/148 Installing : xz-5.2.5-4.fc34.x86_64 106/148 Installing : xxhash-libs-0.8.0-1.fc33.x86_64 107/148 Installing : coreutils-common-8.32-15.fc34.x86_64 108/148 Installing : openssl-libs-1:1.1.1i-1.fc34.x86_64 109/148 Installing : coreutils-8.32-15.fc34.x86_64 110/148 Running scriptlet: ca-certificates-2020.2.41-6.fc34.noarch 111/148 Installing : ca-certificates-2020.2.41-6.fc34.noarch 111/148 Running scriptlet: ca-certificates-2020.2.41-6.fc34.noarch 111/148 Installing : krb5-libs-1.19-0.beta2.1.fc34.x86_64 112/148 Installing : libblkid-2.36.1-3.fc34.x86_64 113/148 Running scriptlet: libblkid-2.36.1-3.fc34.x86_64 113/148 Installing : libtirpc-1.3.1-0.fc34.x86_64 114/148 Installing : gzip-1.10-3.fc33.x86_64 115/148 Installing : cracklib-2.9.6-24.fc33.x86_64 116/148 Installing : libnsl2-1.3.0-1.fc34.x86_64 117/148 Installing : libpwquality-1.4.4-2.fc34.x86_64 118/148 Installing : pam-1.5.1-2.fc34.x86_64 119/148 Installing : libfdisk-2.36.1-3.fc34.x86_64 120/148 Installing : libmount-2.36.1-3.fc34.x86_64 121/148 Installing : cyrus-sasl-lib-2.1.27-6.fc33.x86_64 122/148 Installing : openldap-2.4.57-1.fc34.x86_64 123/148 Installing : libssh-0.9.5-1.fc34.x86_64 124/148 Installing : libcurl-7.74.0-4.fc34.x86_64 125/148 Installing : elfutils-libs-0.182-2.fc34.x86_64 126/148 Installing : elfutils-debuginfod-client-0.182-2.fc34.x86_64 127/148 Installing : binutils-gold-2.35.1-25.fc34.x86_64 128/148 Installing : binutils-2.35.1-25.fc34.x86_64 129/148 Running scriptlet: binutils-2.35.1-25.fc34.x86_64 129/148 Installing : elfutils-0.182-2.fc34.x86_64 130/148 Installing : gdb-minimal-10.1-2.fc34.x86_64 131/148 Installing : curl-7.74.0-4.fc34.x86_64 132/148 Installing : guile22-2.2.7-1.fc34.x86_64 133/148 Installing : systemd-libs-247.2-1.fc34.x86_64 134/148 Running scriptlet: systemd-libs-247.2-1.fc34.x86_64 134/148 Installing : libarchive-3.5.1-1.fc34.x86_64 135/148 Installing : rpm-4.16.1.2-4.fc34.x86_64 136/148 Installing : rpm-libs-4.16.1.2-4.fc34.x86_64 137/148 Installing : rpm-build-libs-4.16.1.2-4.fc34.x86_64 138/148 Installing : efi-srpm-macros-4-5.fc33.noarch 139/148 Installing : lua-srpm-macros-1-3.fc34.noarch 140/148 Installing : fonts-srpm-macros-1:2.0.5-4.fc33.noarch 141/148 Installing : go-srpm-macros-3.0.9-1.fc34.noarch 142/148 Installing : python-srpm-macros-3.9-11.fc34.noarch 143/148 Installing : redhat-rpm-config-180-1.fc34.noarch 144/148 Installing : rpm-build-4.16.1.2-4.fc34.x86_64 145/148 Installing : util-linux-2.36.1-3.fc34.x86_64 146/148 Running scriptlet: util-linux-2.36.1-3.fc34.x86_64 146/148 Installing : make-1:4.3-2.fc33.x86_64 147/148 Installing : which-2.21-20.fc33.x86_64 148/148 Running scriptlet: filesystem-3.14-4.fc34.x86_64 148/148 Running scriptlet: ca-certificates-2020.2.41-6.fc34.noarch 148/148 Running scriptlet: rpm-4.16.1.2-4.fc34.x86_64 148/148 Running scriptlet: which-2.21-20.fc33.x86_64 148/148 Verifying : alternatives-1.15-1.fc34.x86_64 1/148 Verifying : audit-libs-3.0-1.fc34.x86_64 2/148 Verifying : basesystem-11-10.fc33.noarch 3/148 Verifying : bash-5.1.0-1.fc34.x86_64 4/148 Verifying : binutils-2.35.1-25.fc34.x86_64 5/148 Verifying : binutils-gold-2.35.1-25.fc34.x86_64 6/148 Verifying : bzip2-1.0.8-4.fc33.x86_64 7/148 Verifying : bzip2-libs-1.0.8-4.fc33.x86_64 8/148 Verifying : ca-certificates-2020.2.41-6.fc34.noarch 9/148 Verifying : coreutils-8.32-15.fc34.x86_64 10/148 Verifying : coreutils-common-8.32-15.fc34.x86_64 11/148 Verifying : cpio-2.13-8.fc33.x86_64 12/148 Verifying : cracklib-2.9.6-24.fc33.x86_64 13/148 Verifying : crypto-policies-20210118-1.gitb21c811.fc34.noarc 14/148 Verifying : curl-7.74.0-4.fc34.x86_64 15/148 Verifying : cyrus-sasl-lib-2.1.27-6.fc33.x86_64 16/148 Verifying : diffutils-3.7-7.fc34.x86_64 17/148 Verifying : dwz-0.13-7.fc34.x86_64 18/148 Verifying : ed-1.14.2-9.fc33.x86_64 19/148 Verifying : efi-srpm-macros-4-5.fc33.noarch 20/148 Verifying : elfutils-0.182-2.fc34.x86_64 21/148 Verifying : elfutils-debuginfod-client-0.182-2.fc34.x86_64 22/148 Verifying : elfutils-default-yama-scope-0.182-2.fc34.noarch 23/148 Verifying : elfutils-libelf-0.182-2.fc34.x86_64 24/148 Verifying : elfutils-libs-0.182-2.fc34.x86_64 25/148 Verifying : expat-2.2.10-1.fc34.x86_64 26/148 Verifying : fedora-gpg-keys-34-0.8.noarch 27/148 Verifying : fedora-release-34-0.10.noarch 28/148 Verifying : fedora-release-common-34-0.10.noarch 29/148 Verifying : fedora-release-identity-basic-34-0.10.noarch 30/148 Verifying : fedora-repos-34-0.8.noarch 31/148 Verifying : fedora-repos-rawhide-34-0.8.noarch 32/148 Verifying : file-5.39-4.fc34.x86_64 33/148 Verifying : file-libs-5.39-4.fc34.x86_64 34/148 Verifying : filesystem-3.14-4.fc34.x86_64 35/148 Verifying : findutils-1:4.8.0-1.fc34.x86_64 36/148 Verifying : fonts-srpm-macros-1:2.0.5-4.fc33.noarch 37/148 Verifying : fpc-srpm-macros-1.3-2.fc33.noarch 38/148 Verifying : gawk-5.1.0-2.fc33.x86_64 39/148 Verifying : gc-8.0.4-4.fc33.x86_64 40/148 Verifying : gdb-minimal-10.1-2.fc34.x86_64 41/148 Verifying : ghc-srpm-macros-1.5.0-3.fc33.noarch 42/148 Verifying : glibc-2.32.9000-26.fc34.x86_64 43/148 Verifying : glibc-common-2.32.9000-26.fc34.x86_64 44/148 Verifying : glibc-minimal-langpack-2.32.9000-26.fc34.x86_64 45/148 Verifying : gmp-1:6.2.0-5.fc34.x86_64 46/148 Verifying : gnat-srpm-macros-4-12.fc33.noarch 47/148 Verifying : go-srpm-macros-3.0.9-1.fc34.noarch 48/148 Verifying : grep-3.6-1.fc34.x86_64 49/148 Verifying : guile22-2.2.7-1.fc34.x86_64 50/148 Verifying : gzip-1.10-3.fc33.x86_64 51/148 Verifying : info-6.7-8.fc33.x86_64 52/148 Verifying : kernel-srpm-macros-1.0-3.fc33.noarch 53/148 Verifying : keyutils-libs-1.6.1-1.fc34.x86_64 54/148 Verifying : krb5-libs-1.19-0.beta2.1.fc34.x86_64 55/148 Verifying : libacl-2.2.53-9.fc34.x86_64 56/148 Verifying : libarchive-3.5.1-1.fc34.x86_64 57/148 Verifying : libattr-2.4.48-10.fc33.x86_64 58/148 Verifying : libblkid-2.36.1-3.fc34.x86_64 59/148 Verifying : libbrotli-1.0.9-3.fc34.x86_64 60/148 Verifying : libcap-2.46-1.fc34.x86_64 61/148 Verifying : libcap-ng-0.8.2-1.fc34.x86_64 62/148 Verifying : libcom_err-1.45.6-4.fc33.x86_64 63/148 Verifying : libcurl-7.74.0-4.fc34.x86_64 64/148 Verifying : libdb-5.3.28-45.fc34.x86_64 65/148 Verifying : libeconf-0.3.8-4.fc33.x86_64 66/148 Verifying : libfdisk-2.36.1-3.fc34.x86_64 67/148 Verifying : libffi-3.1-27.fc34.x86_64 68/148 Verifying : libgcc-11.0.0-0.17.fc34.x86_64 69/148 Verifying : libgcrypt-1.9.0-1.fc34.x86_64 70/148 Verifying : libgomp-11.0.0-0.17.fc34.x86_64 71/148 Verifying : libgpg-error-1.41-1.fc34.x86_64 72/148 Verifying : libidn2-2.3.0-4.fc34.x86_64 73/148 Verifying : libmetalink-0.1.3-13.fc33.x86_64 74/148 Verifying : libmount-2.36.1-3.fc34.x86_64 75/148 Verifying : libnghttp2-1.42.0-1.fc34.x86_64 76/148 Verifying : libnsl2-1.3.0-1.fc34.x86_64 77/148 Verifying : libpkgconf-1.7.3-5.fc34.x86_64 78/148 Verifying : libpsl-0.21.1-2.fc33.x86_64 79/148 Verifying : libpwquality-1.4.4-2.fc34.x86_64 80/148 Verifying : libselinux-3.2-0.rc1.1.fc34.x86_64 81/148 Verifying : libsemanage-3.2-0.rc1.1.fc34.x86_64 82/148 Verifying : libsepol-3.2-0.rc1.1.fc34.x86_64 83/148 Verifying : libsigsegv-2.13-1.fc34.x86_64 84/148 Verifying : libsmartcols-2.36.1-3.fc34.x86_64 85/148 Verifying : libssh-0.9.5-1.fc34.x86_64 86/148 Verifying : libssh-config-0.9.5-1.fc34.noarch 87/148 Verifying : libstdc++-11.0.0-0.17.fc34.x86_64 88/148 Verifying : libtasn1-4.16.0-3.fc33.x86_64 89/148 Verifying : libtirpc-1.3.1-0.fc34.x86_64 90/148 Verifying : libtool-ltdl-2.4.6-38.fc34.x86_64 91/148 Verifying : libunistring-0.9.10-9.fc33.x86_64 92/148 Verifying : libutempter-1.2.1-3.fc34.x86_64 93/148 Verifying : libuuid-2.36.1-3.fc34.x86_64 94/148 Verifying : libverto-0.3.1-2.fc34.x86_64 95/148 Verifying : libxcrypt-4.4.17-1.fc34.x86_64 96/148 Verifying : libxml2-2.9.10-9.fc34.x86_64 97/148 Verifying : libzstd-1.4.7-1.fc34.x86_64 98/148 Verifying : lua-libs-5.4.2-1.fc34.x86_64 99/148 Verifying : lua-srpm-macros-1-3.fc34.noarch 100/148 Verifying : lz4-libs-1.9.3-1.fc34.x86_64 101/148 Verifying : make-1:4.3-2.fc33.x86_64 102/148 Verifying : mpfr-4.1.0-2.fc33.x86_64 103/148 Verifying : ncurses-base-6.2-3.20200222.fc33.noarch 104/148 Verifying : ncurses-libs-6.2-3.20200222.fc33.x86_64 105/148 Verifying : nim-srpm-macros-3-3.fc33.noarch 106/148 Verifying : ocaml-srpm-macros-6-3.fc33.noarch 107/148 Verifying : openblas-srpm-macros-2-8.fc33.noarch 108/148 Verifying : openldap-2.4.57-1.fc34.x86_64 109/148 Verifying : openssl-libs-1:1.1.1i-1.fc34.x86_64 110/148 Verifying : p11-kit-0.23.22-1.fc34.x86_64 111/148 Verifying : p11-kit-trust-0.23.22-1.fc34.x86_64 112/148 Verifying : pam-1.5.1-2.fc34.x86_64 113/148 Verifying : patch-2.7.6-13.fc33.x86_64 114/148 Verifying : pcre-8.44-3.fc34.x86_64 115/148 Verifying : pcre2-10.36-2.fc34.x86_64 116/148 Verifying : pcre2-syntax-10.36-2.fc34.noarch 117/148 Verifying : perl-srpm-macros-1-38.fc33.noarch 118/148 Verifying : pkgconf-1.7.3-5.fc34.x86_64 119/148 Verifying : pkgconf-m4-1.7.3-5.fc34.noarch 120/148 Verifying : pkgconf-pkg-config-1.7.3-5.fc34.x86_64 121/148 Verifying : popt-1.18-2.fc34.x86_64 122/148 Verifying : publicsuffix-list-dafsa-20190417-4.fc33.noarch 123/148 Verifying : python-srpm-macros-3.9-11.fc34.noarch 124/148 Verifying : qt5-srpm-macros-5.15.2-1.fc34.noarch 125/148 Verifying : readline-8.1-1.fc34.x86_64 126/148 Verifying : redhat-rpm-config-180-1.fc34.noarch 127/148 Verifying : rpm-4.16.1.2-4.fc34.x86_64 128/148 Verifying : rpm-build-4.16.1.2-4.fc34.x86_64 129/148 Verifying : rpm-build-libs-4.16.1.2-4.fc34.x86_64 130/148 Verifying : rpm-libs-4.16.1.2-4.fc34.x86_64 131/148 Verifying : rust-srpm-macros-17-1.fc34.noarch 132/148 Verifying : sed-4.8-6.fc34.x86_64 133/148 Verifying : setup-2.13.7-2.fc33.noarch 134/148 Verifying : shadow-utils-2:4.8.1-6.fc34.x86_64 135/148 Verifying : sqlite-libs-3.34.1-1.fc34.x86_64 136/148 Verifying : systemd-libs-247.2-1.fc34.x86_64 137/148 Verifying : tar-2:1.33-2.fc34.x86_64 138/148 Verifying : tzdata-2021a-1.fc34.noarch 139/148 Verifying : unzip-6.0-49.fc33.x86_64 140/148 Verifying : util-linux-2.36.1-3.fc34.x86_64 141/148 Verifying : which-2.21-20.fc33.x86_64 142/148 Verifying : xxhash-libs-0.8.0-1.fc33.x86_64 143/148 Verifying : xz-5.2.5-4.fc34.x86_64 144/148 Verifying : xz-libs-5.2.5-4.fc34.x86_64 145/148 Verifying : zip-3.0-27.fc33.x86_64 146/148 Verifying : zlib-1.2.11-23.fc34.x86_64 147/148 Verifying : zstd-1.4.7-1.fc34.x86_64 148/148 Installed: alternatives-1.15-1.fc34.x86_64 audit-libs-3.0-1.fc34.x86_64 basesystem-11-10.fc33.noarch bash-5.1.0-1.fc34.x86_64 binutils-2.35.1-25.fc34.x86_64 binutils-gold-2.35.1-25.fc34.x86_64 bzip2-1.0.8-4.fc33.x86_64 bzip2-libs-1.0.8-4.fc33.x86_64 ca-certificates-2020.2.41-6.fc34.noarch coreutils-8.32-15.fc34.x86_64 coreutils-common-8.32-15.fc34.x86_64 cpio-2.13-8.fc33.x86_64 cracklib-2.9.6-24.fc33.x86_64 crypto-policies-20210118-1.gitb21c811.fc34.noarch curl-7.74.0-4.fc34.x86_64 cyrus-sasl-lib-2.1.27-6.fc33.x86_64 diffutils-3.7-7.fc34.x86_64 dwz-0.13-7.fc34.x86_64 ed-1.14.2-9.fc33.x86_64 efi-srpm-macros-4-5.fc33.noarch elfutils-0.182-2.fc34.x86_64 elfutils-debuginfod-client-0.182-2.fc34.x86_64 elfutils-default-yama-scope-0.182-2.fc34.noarch elfutils-libelf-0.182-2.fc34.x86_64 elfutils-libs-0.182-2.fc34.x86_64 expat-2.2.10-1.fc34.x86_64 fedora-gpg-keys-34-0.8.noarch fedora-release-34-0.10.noarch fedora-release-common-34-0.10.noarch fedora-release-identity-basic-34-0.10.noarch fedora-repos-34-0.8.noarch fedora-repos-rawhide-34-0.8.noarch file-5.39-4.fc34.x86_64 file-libs-5.39-4.fc34.x86_64 filesystem-3.14-4.fc34.x86_64 findutils-1:4.8.0-1.fc34.x86_64 fonts-srpm-macros-1:2.0.5-4.fc33.noarch fpc-srpm-macros-1.3-2.fc33.noarch gawk-5.1.0-2.fc33.x86_64 gc-8.0.4-4.fc33.x86_64 gdb-minimal-10.1-2.fc34.x86_64 ghc-srpm-macros-1.5.0-3.fc33.noarch glibc-2.32.9000-26.fc34.x86_64 glibc-common-2.32.9000-26.fc34.x86_64 glibc-minimal-langpack-2.32.9000-26.fc34.x86_64 gmp-1:6.2.0-5.fc34.x86_64 gnat-srpm-macros-4-12.fc33.noarch go-srpm-macros-3.0.9-1.fc34.noarch grep-3.6-1.fc34.x86_64 guile22-2.2.7-1.fc34.x86_64 gzip-1.10-3.fc33.x86_64 info-6.7-8.fc33.x86_64 kernel-srpm-macros-1.0-3.fc33.noarch keyutils-libs-1.6.1-1.fc34.x86_64 krb5-libs-1.19-0.beta2.1.fc34.x86_64 libacl-2.2.53-9.fc34.x86_64 libarchive-3.5.1-1.fc34.x86_64 libattr-2.4.48-10.fc33.x86_64 libblkid-2.36.1-3.fc34.x86_64 libbrotli-1.0.9-3.fc34.x86_64 libcap-2.46-1.fc34.x86_64 libcap-ng-0.8.2-1.fc34.x86_64 libcom_err-1.45.6-4.fc33.x86_64 libcurl-7.74.0-4.fc34.x86_64 libdb-5.3.28-45.fc34.x86_64 libeconf-0.3.8-4.fc33.x86_64 libfdisk-2.36.1-3.fc34.x86_64 libffi-3.1-27.fc34.x86_64 libgcc-11.0.0-0.17.fc34.x86_64 libgcrypt-1.9.0-1.fc34.x86_64 libgomp-11.0.0-0.17.fc34.x86_64 libgpg-error-1.41-1.fc34.x86_64 libidn2-2.3.0-4.fc34.x86_64 libmetalink-0.1.3-13.fc33.x86_64 libmount-2.36.1-3.fc34.x86_64 libnghttp2-1.42.0-1.fc34.x86_64 libnsl2-1.3.0-1.fc34.x86_64 libpkgconf-1.7.3-5.fc34.x86_64 libpsl-0.21.1-2.fc33.x86_64 libpwquality-1.4.4-2.fc34.x86_64 libselinux-3.2-0.rc1.1.fc34.x86_64 libsemanage-3.2-0.rc1.1.fc34.x86_64 libsepol-3.2-0.rc1.1.fc34.x86_64 libsigsegv-2.13-1.fc34.x86_64 libsmartcols-2.36.1-3.fc34.x86_64 libssh-0.9.5-1.fc34.x86_64 libssh-config-0.9.5-1.fc34.noarch libstdc++-11.0.0-0.17.fc34.x86_64 libtasn1-4.16.0-3.fc33.x86_64 libtirpc-1.3.1-0.fc34.x86_64 libtool-ltdl-2.4.6-38.fc34.x86_64 libunistring-0.9.10-9.fc33.x86_64 libutempter-1.2.1-3.fc34.x86_64 libuuid-2.36.1-3.fc34.x86_64 libverto-0.3.1-2.fc34.x86_64 libxcrypt-4.4.17-1.fc34.x86_64 libxml2-2.9.10-9.fc34.x86_64 libzstd-1.4.7-1.fc34.x86_64 lua-libs-5.4.2-1.fc34.x86_64 lua-srpm-macros-1-3.fc34.noarch lz4-libs-1.9.3-1.fc34.x86_64 make-1:4.3-2.fc33.x86_64 mpfr-4.1.0-2.fc33.x86_64 ncurses-base-6.2-3.20200222.fc33.noarch ncurses-libs-6.2-3.20200222.fc33.x86_64 nim-srpm-macros-3-3.fc33.noarch ocaml-srpm-macros-6-3.fc33.noarch openblas-srpm-macros-2-8.fc33.noarch openldap-2.4.57-1.fc34.x86_64 openssl-libs-1:1.1.1i-1.fc34.x86_64 p11-kit-0.23.22-1.fc34.x86_64 p11-kit-trust-0.23.22-1.fc34.x86_64 pam-1.5.1-2.fc34.x86_64 patch-2.7.6-13.fc33.x86_64 pcre-8.44-3.fc34.x86_64 pcre2-10.36-2.fc34.x86_64 pcre2-syntax-10.36-2.fc34.noarch perl-srpm-macros-1-38.fc33.noarch pkgconf-1.7.3-5.fc34.x86_64 pkgconf-m4-1.7.3-5.fc34.noarch pkgconf-pkg-config-1.7.3-5.fc34.x86_64 popt-1.18-2.fc34.x86_64 publicsuffix-list-dafsa-20190417-4.fc33.noarch python-srpm-macros-3.9-11.fc34.noarch qt5-srpm-macros-5.15.2-1.fc34.noarch readline-8.1-1.fc34.x86_64 redhat-rpm-config-180-1.fc34.noarch rpm-4.16.1.2-4.fc34.x86_64 rpm-build-4.16.1.2-4.fc34.x86_64 rpm-build-libs-4.16.1.2-4.fc34.x86_64 rpm-libs-4.16.1.2-4.fc34.x86_64 rust-srpm-macros-17-1.fc34.noarch sed-4.8-6.fc34.x86_64 setup-2.13.7-2.fc33.noarch shadow-utils-2:4.8.1-6.fc34.x86_64 sqlite-libs-3.34.1-1.fc34.x86_64 systemd-libs-247.2-1.fc34.x86_64 tar-2:1.33-2.fc34.x86_64 tzdata-2021a-1.fc34.noarch unzip-6.0-49.fc33.x86_64 util-linux-2.36.1-3.fc34.x86_64 which-2.21-20.fc33.x86_64 xxhash-libs-0.8.0-1.fc33.x86_64 xz-5.2.5-4.fc34.x86_64 xz-libs-5.2.5-4.fc34.x86_64 zip-3.0-27.fc33.x86_64 zlib-1.2.11-23.fc34.x86_64 zstd-1.4.7-1.fc34.x86_64 Complete! Finish: dnf install Start: creating root cache Finish: creating root cache Finish: chroot init INFO: Installed packages: INFO: pkgconf-1.7.3-5.fc34.x86_64 libcap-ng-0.8.2-1.fc34.x86_64 lz4-libs-1.9.3-1.fc34.x86_64 gnat-srpm-macros-4-12.fc33.noarch dwz-0.13-7.fc34.x86_64 libfdisk-2.36.1-3.fc34.x86_64 which-2.21-20.fc33.x86_64 rpm-4.16.1.2-4.fc34.x86_64 libmetalink-0.1.3-13.fc33.x86_64 keyutils-libs-1.6.1-1.fc34.x86_64 diffutils-3.7-7.fc34.x86_64 libnghttp2-1.42.0-1.fc34.x86_64 guile22-2.2.7-1.fc34.x86_64 mpfr-4.1.0-2.fc33.x86_64 openssl-libs-1.1.1i-1.fc34.x86_64 libcurl-7.74.0-4.fc34.x86_64 ghc-srpm-macros-1.5.0-3.fc33.noarch gc-8.0.4-4.fc33.x86_64 sqlite-libs-3.34.1-1.fc34.x86_64 fonts-srpm-macros-2.0.5-4.fc33.noarch pkgconf-m4-1.7.3-5.fc34.noarch popt-1.18-2.fc34.x86_64 nim-srpm-macros-3-3.fc33.noarch filesystem-3.14-4.fc34.x86_64 libutempter-1.2.1-3.fc34.x86_64 libtirpc-1.3.1-0.fc34.x86_64 libgpg-error-1.41-1.fc34.x86_64 setup-2.13.7-2.fc33.noarch libtool-ltdl-2.4.6-38.fc34.x86_64 kernel-srpm-macros-1.0-3.fc33.noarch libpsl-0.21.1-2.fc33.x86_64 p11-kit-trust-0.23.22-1.fc34.x86_64 coreutils-8.32-15.fc34.x86_64 libtasn1-4.16.0-3.fc33.x86_64 libcom_err-1.45.6-4.fc33.x86_64 libffi-3.1-27.fc34.x86_64 file-5.39-4.fc34.x86_64 rpm-libs-4.16.1.2-4.fc34.x86_64 libattr-2.4.48-10.fc33.x86_64 pcre2-syntax-10.36-2.fc34.noarch libsmartcols-2.36.1-3.fc34.x86_64 unzip-6.0-49.fc33.x86_64 redhat-rpm-config-180-1.fc34.noarch elfutils-libs-0.182-2.fc34.x86_64 bzip2-libs-1.0.8-4.fc33.x86_64 zip-3.0-27.fc33.x86_64 fedora-release-common-34-0.10.noarch elfutils-debuginfod-client-0.182-2.fc34.x86_64 libstdc++-11.0.0-0.17.fc34.x86_64 elfutils-0.182-2.fc34.x86_64 shadow-utils-4.8.1-6.fc34.x86_64 libpkgconf-1.7.3-5.fc34.x86_64 pcre2-10.36-2.fc34.x86_64 lua-libs-5.4.2-1.fc34.x86_64 libdb-5.3.28-45.fc34.x86_64 pam-1.5.1-2.fc34.x86_64 readline-8.1-1.fc34.x86_64 zstd-1.4.7-1.fc34.x86_64 fedora-repos-34-0.8.noarch curl-7.74.0-4.fc34.x86_64 rust-srpm-macros-17-1.fc34.noarch lua-srpm-macros-1-3.fc34.noarch libeconf-0.3.8-4.fc33.x86_64 cracklib-2.9.6-24.fc33.x86_64 ncurses-base-6.2-3.20200222.fc33.noarch audit-libs-3.0-1.fc34.x86_64 gawk-5.1.0-2.fc33.x86_64 alternatives-1.15-1.fc34.x86_64 libsemanage-3.2-0.rc1.1.fc34.x86_64 rpm-build-libs-4.16.1.2-4.fc34.x86_64 openldap-2.4.57-1.fc34.x86_64 crypto-policies-20210118-1.gitb21c811.fc34.noarch libverto-0.3.1-2.fc34.x86_64 libuuid-2.36.1-3.fc34.x86_64 tar-1.33-2.fc34.x86_64 ca-certificates-2020.2.41-6.fc34.noarch libmount-2.36.1-3.fc34.x86_64 cpio-2.13-8.fc33.x86_64 sed-4.8-6.fc34.x86_64 ncurses-libs-6.2-3.20200222.fc33.x86_64 file-libs-5.39-4.fc34.x86_64 util-linux-2.36.1-3.fc34.x86_64 libsigsegv-2.13-1.fc34.x86_64 fedora-release-identity-basic-34-0.10.noarch findutils-4.8.0-1.fc34.x86_64 libnsl2-1.3.0-1.fc34.x86_64 efi-srpm-macros-4-5.fc33.noarch fedora-repos-rawhide-34-0.8.noarch gzip-1.10-3.fc33.x86_64 libxcrypt-4.4.17-1.fc34.x86_64 expat-2.2.10-1.fc34.x86_64 perl-srpm-macros-1-38.fc33.noarch pkgconf-pkg-config-1.7.3-5.fc34.x86_64 xz-libs-5.2.5-4.fc34.x86_64 binutils-gold-2.35.1-25.fc34.x86_64 libselinux-3.2-0.rc1.1.fc34.x86_64 tzdata-2021a-1.fc34.noarch elfutils-libelf-0.182-2.fc34.x86_64 libzstd-1.4.7-1.fc34.x86_64 ed-1.14.2-9.fc33.x86_64 glibc-minimal-langpack-2.32.9000-26.fc34.x86_64 bzip2-1.0.8-4.fc33.x86_64 elfutils-default-yama-scope-0.182-2.fc34.noarch libidn2-2.3.0-4.fc34.x86_64 gdb-minimal-10.1-2.fc34.x86_64 rpm-build-4.16.1.2-4.fc34.x86_64 xz-5.2.5-4.fc34.x86_64 krb5-libs-1.19-0.beta2.1.fc34.x86_64 pcre-8.44-3.fc34.x86_64 glibc-common-2.32.9000-26.fc34.x86_64 publicsuffix-list-dafsa-20190417-4.fc33.noarch libacl-2.2.53-9.fc34.x86_64 libarchive-3.5.1-1.fc34.x86_64 ocaml-srpm-macros-6-3.fc33.noarch glibc-2.32.9000-26.fc34.x86_64 fpc-srpm-macros-1.3-2.fc33.noarch go-srpm-macros-3.0.9-1.fc34.noarch python-srpm-macros-3.9-11.fc34.noarch libpwquality-1.4.4-2.fc34.x86_64 libssh-0.9.5-1.fc34.x86_64 zlib-1.2.11-23.fc34.x86_64 libblkid-2.36.1-3.fc34.x86_64 libgomp-11.0.0-0.17.fc34.x86_64 make-4.3-2.fc33.x86_64 libbrotli-1.0.9-3.fc34.x86_64 binutils-2.35.1-25.fc34.x86_64 libgcrypt-1.9.0-1.fc34.x86_64 basesystem-11-10.fc33.noarch libxml2-2.9.10-9.fc34.x86_64 patch-2.7.6-13.fc33.x86_64 fedora-release-34-0.10.noarch libsepol-3.2-0.rc1.1.fc34.x86_64 coreutils-common-8.32-15.fc34.x86_64 bash-5.1.0-1.fc34.x86_64 libgcc-11.0.0-0.17.fc34.x86_64 xxhash-libs-0.8.0-1.fc33.x86_64 libssh-config-0.9.5-1.fc34.noarch gmp-6.2.0-5.fc34.x86_64 systemd-libs-247.2-1.fc34.x86_64 grep-3.6-1.fc34.x86_64 fedora-gpg-keys-34-0.8.noarch info-6.7-8.fc33.x86_64 cyrus-sasl-lib-2.1.27-6.fc33.x86_64 openblas-srpm-macros-2-8.fc33.noarch libcap-2.46-1.fc34.x86_64 qt5-srpm-macros-5.15.2-1.fc34.noarch libunistring-0.9.10-9.fc33.x86_64 p11-kit-0.23.22-1.fc34.x86_64 Start: buildsrpm Start: rpmbuild -bs Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1611619200 Wrote: /builddir/build/SRPMS/neuron-7.8.1-8.fc34.src.rpm Finish: rpmbuild -bs INFO: chroot_scan: 3 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1611696497.919279/root/var/log/dnf.rpm.log /var/lib/mock/fedora-rawhide-x86_64-1611696497.919279/root/var/log/dnf.librepo.log /var/lib/mock/fedora-rawhide-x86_64-1611696497.919279/root/var/log/dnf.log Finish: buildsrpm INFO: Done(/tmp/copr-rpmbuild-4q6k33wz/obtain-sources/neuron/neuron.spec) Config(child) 1 minutes 7 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 (timeout=18000): unbuffer mock --rebuild /var/lib/copr-rpmbuild/results/neuron-7.8.1-8.fc34.src.rpm --resultdir /var/lib/copr-rpmbuild/results --uniqueext 1611696566.830929 -r /var/lib/copr-rpmbuild/results/configs/child.cfg INFO: mock.py version 2.9 starting (python version = 3.9.1, NVR = mock-2.9-1.fc33)... 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/results/neuron-7.8.1-8.fc34.src.rpm) Config(fedora-rawhide-x86_64) Start: clean chroot Finish: clean chroot Start: chroot init INFO: mounting tmpfs at /var/lib/mock/fedora-rawhide-x86_64-1611696566.830929/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 Mock Version: 2.9 INFO: Mock Version: 2.9 Start: dnf update No matches found for the following disable plugin patterns: local, spacewalk Copr repository 22 kB/s | 3.7 kB 00:00 Additional repo http_kojipkgs_fedoraproject_org 76 kB/s | 3.8 kB 00:00 fedora 82 kB/s | 12 kB 00:00 Dependencies resolved. Nothing to do. Complete! Finish: dnf update Finish: chroot init Start: build phase for neuron-7.8.1-8.fc34.src.rpm Start: build setup for neuron-7.8.1-8.fc34.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1611619200 Wrote: /builddir/build/SRPMS/neuron-7.8.1-8.fc34.src.rpm No matches found for the following disable plugin patterns: local, spacewalk Copr repository 174 kB/s | 3.7 kB 00:00 Additional repo http_kojipkgs_fedoraproject_org 177 kB/s | 3.8 kB 00:00 fedora 238 kB/s | 12 kB 00:00 Package make-1:4.3-2.fc33.x86_64 is already installed. Dependencies resolved. ======================================================================================================================================= Package Arch Version Repository Size ======================================================================================================================================= Installing: Random123-devel  x86_64 1.13.2-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 47 k autoconf  noarch 2.69-35.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 666 k automake  noarch 1.16.2-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 664 k bison  x86_64 3.7.4-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 925 k bison-devel  x86_64 3.7.4-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 22 k catch-devel  x86_64 2.13.4-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 525 k cmake  x86_64 3.19.3-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 5.7 M flex  x86_64 2.6.4-6.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 312 k gcc  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 31 M gcc-c++  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 12 M git-core  x86_64 2.30.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 3.7 M iv-devel  x86_64 0.1-0.1.20200818git14890c4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 180 k libX11-devel  x86_64 1.7.0-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 940 k libXext-devel  x86_64 1.3.4-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 73 k libfl-devel  x86_64 2.6.4-6.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11 k libtool  x86_64 2.4.6-38.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 578 k mpich-devel  x86_64 3.3.2-8.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 901 k ncurses-devel  x86_64 6.2-3.20200222.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 510 k openmpi-devel  x86_64 4.1.0-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.2 M python3-Cython  x86_64 0.29.21-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.1 M python3-devel  x86_64 3.9.1-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 206 k python3-mpi4py-mpich  x86_64 3.0.3-6.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 467 k python3-mpi4py-openmpi  x86_64 3.0.3-6.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 469 k python3-pytest  noarch 6.0.2-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.5 M python3-setuptools  noarch 51.1.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 843 k readline-devel  x86_64 8.1-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 195 k rpm-mpi-hooks  noarch 6-6.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11 k Installing dependencies: Lmod  x86_64 8.4.15-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 219 k acl  x86_64 2.2.53-9.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 72 k annobin  x86_64 9.58-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 135 k cmake-data  noarch 3.19.3-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.5 M cmake-filesystem  x86_64 3.19.3-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 16 k cmake-rpm-macros  noarch 3.19.3-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 15 k cpp  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 10 M cryptsetup-libs  x86_64 2.3.4-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 476 k dbus  x86_64 1:1.12.20-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 9.9 k dbus-broker  x86_64 26-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 173 k dbus-common  noarch 1:1.12.20-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 17 k device-mapper  x86_64 1.02.173-1.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 142 k device-mapper-libs  x86_64 1.02.173-1.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 178 k emacs-filesystem  noarch 1:27.1-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 8.2 k gcc-gfortran  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11 M gdbm-libs  x86_64 1:1.19-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 54 k glibc-devel  x86_64 2.32.9000-26.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 M glibc-headers-x86  noarch 2.32.9000-26.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 514 k gnutls  x86_64 3.6.15-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 925 k groff-base  x86_64 1.22.4-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 M hwloc-libs  x86_64 2.2.0-1.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.0 M infinipath-psm  x86_64 3.3-26_g604758e_open.6.fc34.2 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 200 k iptables-libs  x86_64 1.8.7-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 368 k isl  x86_64 0.16.1-12.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 876 k iv  x86_64 0.1-0.1.20200818git14890c4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 M json-c  x86_64 0.14-7.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 41 k jsoncpp  x86_64 1.9.4-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 96 k kbd  x86_64 2.4.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 388 k kbd-misc  noarch 2.4.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.5 M kernel-headers  x86_64 5.11.0-0.rc5.git0.1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.2 M kmod  x86_64 28-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 123 k kmod-libs  x86_64 28-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 64 k less  x86_64 575-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 157 k libICE  x86_64 1.0.10-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 71 k libSM  x86_64 1.2.3-7.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 42 k libX11  x86_64 1.7.0-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 660 k libX11-common  noarch 1.7.0-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 153 k libX11-xcb  x86_64 1.7.0-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11 k libXau  x86_64 1.0.9-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 31 k libXau-devel  x86_64 1.0.9-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 13 k libXext  x86_64 1.3.4-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 39 k libXt  x86_64 1.2.0-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 183 k libargon2  x86_64 20171227-5.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 29 k libcbor  x86_64 0.7.0-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 57 k libedit  x86_64 3.1-33.20191231cvs.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 106 k libevent  x86_64 2.1.12-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 265 k libfabric  x86_64 1.11.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 635 k libfido2  x86_64 1.6.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 71 k libfl2  x86_64 2.6.4-6.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11 k libgfortran  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 803 k libibumad  x86_64 33.0-3.fc34 copr_base 27 k libibverbs  x86_64 33.0-3.fc34 copr_base 335 k libmnl  x86_64 1.0.4-12.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 28 k libmpc  x86_64 1.2.1-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 63 k libnetfilter_conntrack  x86_64 1.0.8-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 58 k libnfnetlink  x86_64 1.0.1-18.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 29 k libnl3  x86_64 3.5.0-5.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 325 k libpcap  x86_64 14:1.9.1-6.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 173 k libpsm2  x86_64 11.2.86-7.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 206 k libquadmath  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 195 k libquadmath-devel  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 34 k librdmacm  x86_64 33.0-3.fc34 copr_base 73 k libseccomp  x86_64 2.5.0-3.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 72 k libstdc++-devel  x86_64 11.0.0-0.17.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.1 M libuv  x86_64 1:1.40.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 151 k libxcb  x86_64 1.13.1-6.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 230 k libxcb-devel  x86_64 1.13.1-6.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.0 M libxcrypt-devel  x86_64 4.4.17-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 32 k llvm-libs  x86_64 11.1.0-0.2.rc2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 22 M lua  x86_64 5.4.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 189 k lua-filesystem  x86_64 1.6.3-14.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 33 k lua-json  noarch 1.3.2-16.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 26 k lua-lpeg  x86_64 1.0.2-5.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 67 k lua-posix  x86_64 35.0-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 132 k lua-term  x86_64 0.07-12.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 15 k m4  x86_64 1.4.18-16.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 211 k mpi4py-common  noarch 3.0.3-6.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 17 k mpich  x86_64 3.3.2-8.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.4 M munge-libs  x86_64 0.5.13-10.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 21 k ncurses  x86_64 6.2-3.20200222.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 395 k ncurses-c++-libs  x86_64 6.2-3.20200222.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 37 k nettle  x86_64 3.7-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 396 k numactl-libs  x86_64 2.0.14-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 30 k openmpi  x86_64 4.1.0-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.7 M opensm-libs  x86_64 3.3.23-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 75 k openssh  x86_64 8.4p1-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 420 k openssh-clients  x86_64 8.4p1-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 619 k orangefs  x86_64 2.9.8-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 M perl-B  x86_64 1.80-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 192 k perl-Carp  noarch 1.50-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 29 k perl-Class-Struct  noarch 0.66-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 33 k perl-Data-Dumper  x86_64 2.174-459.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 56 k perl-DynaLoader  x86_64 1.47-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 40 k perl-Encode  x86_64 4:3.08-458.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.8 M perl-Errno  x86_64 1.30-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 26 k perl-Exporter  noarch 5.74-458.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 32 k perl-Fcntl  x86_64 1.13-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 32 k perl-File-Basename  noarch 2.85-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 28 k perl-File-Compare  noarch 1.100.600-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 24 k perl-File-Copy  noarch 2.34-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 31 k perl-File-Find  noarch 1.37-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 37 k perl-File-Path  noarch 2.18-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 36 k perl-File-Temp  noarch 1:0.231.100-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 60 k perl-File-stat  noarch 1.09-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 28 k perl-Getopt-Long  noarch 1:2.52-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 60 k perl-Getopt-Std  noarch 1.12-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 27 k perl-HTTP-Tiny  noarch 0.076-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 55 k perl-IO  x86_64 1.43-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 99 k perl-IPC-Open3  noarch 1.21-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 34 k perl-MIME-Base64  x86_64 3.16-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 30 k perl-POSIX  x86_64 1.94-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 110 k perl-PathTools  x86_64 3.78-458.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 86 k perl-Pod-Escapes  noarch 1:1.07-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 20 k perl-Pod-Perldoc  noarch 3.28.01-458.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 84 k perl-Pod-Simple  noarch 1:3.42-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 216 k perl-Pod-Usage  noarch 4:2.01-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 41 k perl-Scalar-List-Utils  x86_64 4:1.55-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 70 k perl-SelectSaver  noarch 1.02-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 23 k perl-Socket  x86_64 4:2.031-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 56 k perl-Storable  x86_64 1:3.21-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 97 k perl-Symbol  noarch 1.08-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 25 k perl-Term-ANSIColor  noarch 5.01-458.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 49 k perl-Term-Cap  noarch 1.17-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 22 k perl-Text-ParseWords  noarch 3.30-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 16 k perl-Text-Tabs+Wrap  noarch 2013.0523-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 23 k perl-Thread-Queue  noarch 3.14-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 21 k perl-Time-Local  noarch 2:1.300-4.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 34 k perl-constant  noarch 1.33-458.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 23 k perl-if  noarch 0.60.800-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 25 k perl-interpreter  x86_64 4:5.32.1-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 83 k perl-libs  x86_64 4:5.32.1-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 2.1 M perl-mro  x86_64 1.23-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 40 k perl-overload  noarch 1.31-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 57 k perl-overloading  noarch 0.02-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 24 k perl-parent  noarch 1:0.238-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 14 k perl-podlators  noarch 1:4.14-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 113 k perl-subs  noarch 1.03-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 23 k perl-threads  x86_64 1:2.25-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 58 k perl-threads-shared  x86_64 1.61-457.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 44 k perl-vars  noarch 1.05-469.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 24 k pmix  x86_64 3.2.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 523 k procps-ng  x86_64 3.3.16-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 338 k python-pip-wheel  noarch 20.3.3-3.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.3 M python-rpm-macros  noarch 3.9-11.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 14 k python-setuptools-wheel  noarch 51.1.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 471 k python3  x86_64 3.9.1-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 28 k python3-attrs  noarch 20.3.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 78 k python3-iniconfig  noarch 1.1.1-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 16 k python3-libs  x86_64 3.9.1-4.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 7.4 M python3-more-itertools  noarch 8.5.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 66 k python3-mpich  x86_64 3.3.2-8.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 9.5 k python3-openmpi  x86_64 4.1.0-2.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 11 k python3-packaging  noarch 20.8-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 68 k python3-pluggy  noarch 0.13.1-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 38 k python3-py  noarch 1.10.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 434 k python3-pyparsing  noarch 2.4.7-4.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 149 k python3-rpm-generators  noarch 11-12.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 29 k python3-rpm-macros  noarch 3.9-11.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 13 k python3-toml  noarch 0.10.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 39 k rhash  x86_64 1.4.0-2.fc33 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 183 k systemd  x86_64 247.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 4.2 M systemd-pam  x86_64 247.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 313 k systemd-rpm-macros  noarch 247.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 27 k systemd-udev  x86_64 247.2-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.5 M tcl  x86_64 1:8.6.10-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 1.1 M tcsh  x86_64 6.22.03-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 464 k ucx  x86_64 1.9.0-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 494 k vim-filesystem  noarch 2:8.2.2311-1.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 23 k xorg-x11-proto-devel  noarch 2019.1-5.fc34 http_kojipkgs_fedoraproject_org_repos_rawhide_latest_basearch 261 k Transaction Summary ======================================================================================================================================= Install 196 Packages Total download size: 166 M Installed size: 529 M Downloading Packages: (1/196): libibverbs-33.0-3.fc34.x86_64.rpm 1.7 MB/s | 335 kB 00:00 (2/196): libibumad-33.0-3.fc34.x86_64.rpm 144 kB/s | 27 kB 00:00 (3/196): librdmacm-33.0-3.fc34.x86_64.rpm 382 kB/s | 73 kB 00:00 (4/196): Random123-devel-1.13.2-4.fc34.x86_64.r 1.2 MB/s | 47 kB 00:00 (5/196): Lmod-8.4.15-1.fc34.x86_64.rpm 4.7 MB/s | 219 kB 00:00 (6/196): acl-2.2.53-9.fc34.x86_64.rpm 1.6 MB/s | 72 kB 00:00 (7/196): annobin-9.58-1.fc34.x86_64.rpm 6.7 MB/s | 135 kB 00:00 (8/196): autoconf-2.69-35.fc34.noarch.rpm 16 MB/s | 666 kB 00:00 (9/196): automake-1.16.2-3.fc34.noarch.rpm 14 MB/s | 664 kB 00:00 (10/196): bison-devel-3.7.4-1.fc34.x86_64.rpm 2.6 MB/s | 22 kB 00:00 (11/196): catch-devel-2.13.4-1.fc34.x86_64.rpm 20 MB/s | 525 kB 00:00 (12/196): bison-3.7.4-1.fc34.x86_64.rpm 14 MB/s | 925 kB 00:00 (13/196): cmake-filesystem-3.19.3-1.fc34.x86_64 3.0 MB/s | 16 kB 00:00 (14/196): cmake-rpm-macros-3.19.3-1.fc34.noarch 2.1 MB/s | 15 kB 00:00 (15/196): cmake-data-3.19.3-1.fc34.noarch.rpm 26 MB/s | 1.5 MB 00:00 (16/196): cryptsetup-libs-2.3.4-1.fc34.x86_64.r 19 MB/s | 476 kB 00:00 (17/196): dbus-1.12.20-2.fc33.x86_64.rpm 1.6 MB/s | 9.9 kB 00:00 (18/196): dbus-broker-26-1.fc34.x86_64.rpm 14 MB/s | 173 kB 00:00 (19/196): dbus-common-1.12.20-2.fc33.noarch.rpm 2.4 MB/s | 17 kB 00:00 (20/196): device-mapper-1.02.173-1.fc33.x86_64. 11 MB/s | 142 kB 00:00 (21/196): device-mapper-libs-1.02.173-1.fc33.x8 7.5 MB/s | 178 kB 00:00 (22/196): emacs-filesystem-27.1-2.fc34.noarch.r 2.0 MB/s | 8.2 kB 00:00 (23/196): flex-2.6.4-6.fc34.x86_64.rpm 12 MB/s | 312 kB 00:00 (24/196): cmake-3.19.3-1.fc34.x86_64.rpm 23 MB/s | 5.7 MB 00:00 (25/196): cpp-11.0.0-0.17.fc34.x86_64.rpm 25 MB/s | 10 MB 00:00 (26/196): gcc-c++-11.0.0-0.17.fc34.x86_64.rpm 24 MB/s | 12 MB 00:00 (27/196): gdbm-libs-1.19-1.fc34.x86_64.rpm 4.6 MB/s | 54 kB 00:00 (28/196): git-core-2.30.0-1.fc34.x86_64.rpm 27 MB/s | 3.7 MB 00:00 (29/196): gcc-gfortran-11.0.0-0.17.fc34.x86_64. 23 MB/s | 11 MB 00:00 (30/196): glibc-headers-x86-2.32.9000-26.fc34.n 20 MB/s | 514 kB 00:00 (31/196): glibc-devel-2.32.9000-26.fc34.x86_64. 12 MB/s | 1.1 MB 00:00 (32/196): gnutls-3.6.15-2.fc34.x86_64.rpm 22 MB/s | 925 kB 00:00 (33/196): groff-base-1.22.4-4.fc34.x86_64.rpm 22 MB/s | 1.1 MB 00:00 (34/196): infinipath-psm-3.3-26_g604758e_open.6 13 MB/s | 200 kB 00:00 (35/196): iptables-libs-1.8.7-1.fc34.x86_64.rpm 20 MB/s | 368 kB 00:00 (36/196): hwloc-libs-2.2.0-1.fc33.x86_64.rpm 25 MB/s | 2.0 MB 00:00 (37/196): isl-0.16.1-12.fc33.x86_64.rpm 19 MB/s | 876 kB 00:00 (38/196): iv-devel-0.1-0.1.20200818git14890c4.f 10 MB/s | 180 kB 00:00 (39/196): iv-0.1-0.1.20200818git14890c4.fc34.x8 24 MB/s | 1.1 MB 00:00 (40/196): json-c-0.14-7.fc33.x86_64.rpm 3.6 MB/s | 41 kB 00:00 (41/196): jsoncpp-1.9.4-2.fc34.x86_64.rpm 11 MB/s | 96 kB 00:00 (42/196): kbd-2.4.0-1.fc34.x86_64.rpm 22 MB/s | 388 kB 00:00 (43/196): kernel-headers-5.11.0-0.rc5.git0.1.fc 25 MB/s | 1.2 MB 00:00 (44/196): kbd-misc-2.4.0-1.fc34.noarch.rpm 21 MB/s | 1.5 MB 00:00 (45/196): kmod-28-1.fc34.x86_64.rpm 7.6 MB/s | 123 kB 00:00 (46/196): kmod-libs-28-1.fc34.x86_64.rpm 6.8 MB/s | 64 kB 00:00 (47/196): less-575-1.fc34.x86_64.rpm 13 MB/s | 157 kB 00:00 (48/196): libICE-1.0.10-5.fc34.x86_64.rpm 7.4 MB/s | 71 kB 00:00 (49/196): libSM-1.2.3-7.fc34.x86_64.rpm 2.0 MB/s | 42 kB 00:00 (50/196): libX11-1.7.0-2.fc34.x86_64.rpm 23 MB/s | 660 kB 00:00 (51/196): libX11-common-1.7.0-2.fc34.noarch.rpm 9.7 MB/s | 153 kB 00:00 (52/196): libX11-xcb-1.7.0-2.fc34.x86_64.rpm 1.9 MB/s | 11 kB 00:00 (53/196): libXau-1.0.9-5.fc34.x86_64.rpm 4.9 MB/s | 31 kB 00:00 (54/196): libXau-devel-1.0.9-5.fc34.x86_64.rpm 2.5 MB/s | 13 kB 00:00 (55/196): libXext-1.3.4-5.fc34.x86_64.rpm 4.1 MB/s | 39 kB 00:00 (56/196): libX11-devel-1.7.0-2.fc34.x86_64.rpm 22 MB/s | 940 kB 00:00 (57/196): libXext-devel-1.3.4-5.fc34.x86_64.rpm 6.5 MB/s | 73 kB 00:00 (58/196): libargon2-20171227-5.fc33.x86_64.rpm 4.6 MB/s | 29 kB 00:00 (59/196): libXt-1.2.0-3.fc34.x86_64.rpm 14 MB/s | 183 kB 00:00 (60/196): libcbor-0.7.0-2.fc34.x86_64.rpm 7.5 MB/s | 57 kB 00:00 (61/196): libedit-3.1-33.20191231cvs.fc33.x86_6 7.6 MB/s | 106 kB 00:00 (62/196): libevent-2.1.12-2.fc34.x86_64.rpm 18 MB/s | 265 kB 00:00 (63/196): libfido2-1.6.0-1.fc34.x86_64.rpm 9.0 MB/s | 71 kB 00:00 (64/196): libfl-devel-2.6.4-6.fc34.x86_64.rpm 2.3 MB/s | 11 kB 00:00 (65/196): libfabric-1.11.2-1.fc34.x86_64.rpm 24 MB/s | 635 kB 00:00 (66/196): libfl2-2.6.4-6.fc34.x86_64.rpm 1.4 MB/s | 11 kB 00:00 (67/196): gcc-11.0.0-0.17.fc34.x86_64.rpm 24 MB/s | 31 MB 00:01 (68/196): libmnl-1.0.4-12.fc33.x86_64.rpm 229 kB/s | 28 kB 00:00 (69/196): libmpc-1.2.1-1.fc34.x86_64.rpm 7.3 MB/s | 63 kB 00:00 (70/196): libnetfilter_conntrack-1.0.8-1.fc34.x 6.6 MB/s | 58 kB 00:00 (71/196): libnfnetlink-1.0.1-18.fc33.x86_64.rpm 4.7 MB/s | 29 kB 00:00 (72/196): libgfortran-11.0.0-0.17.fc34.x86_64.r 5.4 MB/s | 803 kB 00:00 (73/196): libpcap-1.9.1-6.fc34.x86_64.rpm 13 MB/s | 173 kB 00:00 (74/196): libnl3-3.5.0-5.fc33.x86_64.rpm 14 MB/s | 325 kB 00:00 (75/196): libpsm2-11.2.86-7.fc34.x86_64.rpm 16 MB/s | 206 kB 00:00 (76/196): libquadmath-devel-11.0.0-0.17.fc34.x8 3.7 MB/s | 34 kB 00:00 (77/196): libseccomp-2.5.0-3.fc33.x86_64.rpm 9.3 MB/s | 72 kB 00:00 (78/196): libquadmath-11.0.0-0.17.fc34.x86_64.r 6.1 MB/s | 195 kB 00:00 (79/196): libtool-2.4.6-38.fc34.x86_64.rpm 22 MB/s | 578 kB 00:00 (80/196): libuv-1.40.0-1.fc34.x86_64.rpm 9.6 MB/s | 151 kB 00:00 (81/196): libxcb-1.13.1-6.fc34.x86_64.rpm 16 MB/s | 230 kB 00:00 (82/196): libxcrypt-devel-4.4.17-1.fc34.x86_64. 2.4 MB/s | 32 kB 00:00 (83/196): libstdc++-devel-11.0.0-0.17.fc34.x86_ 28 MB/s | 2.1 MB 00:00 (84/196): libxcb-devel-1.13.1-6.fc34.x86_64.rpm 22 MB/s | 1.0 MB 00:00 (85/196): lua-filesystem-1.6.3-14.fc33.x86_64.r 3.7 MB/s | 33 kB 00:00 (86/196): lua-5.4.2-1.fc34.x86_64.rpm 10 MB/s | 189 kB 00:00 (87/196): lua-json-1.3.2-16.fc33.noarch.rpm 4.2 MB/s | 26 kB 00:00 (88/196): lua-lpeg-1.0.2-5.fc33.x86_64.rpm 7.1 MB/s | 67 kB 00:00 (89/196): lua-posix-35.0-2.fc33.x86_64.rpm 14 MB/s | 132 kB 00:00 (90/196): lua-term-0.07-12.fc33.x86_64.rpm 1.9 MB/s | 15 kB 00:00 (91/196): m4-1.4.18-16.fc34.x86_64.rpm 17 MB/s | 211 kB 00:00 (92/196): mpi4py-common-3.0.3-6.fc33.noarch.rpm 651 kB/s | 17 kB 00:00 (93/196): mpich-3.3.2-8.fc34.x86_64.rpm 24 MB/s | 1.4 MB 00:00 (94/196): munge-libs-0.5.13-10.fc34.x86_64.rpm 2.1 MB/s | 21 kB 00:00 (95/196): ncurses-6.2-3.20200222.fc33.x86_64.rp 16 MB/s | 395 kB 00:00 (96/196): mpich-devel-3.3.2-8.fc34.x86_64.rpm 9.9 MB/s | 901 kB 00:00 (97/196): ncurses-c++-libs-6.2-3.20200222.fc33. 2.2 MB/s | 37 kB 00:00 (98/196): nettle-3.7-1.fc34.x86_64.rpm 20 MB/s | 396 kB 00:00 (99/196): ncurses-devel-6.2-3.20200222.fc33.x86 16 MB/s | 510 kB 00:00 (100/196): numactl-libs-2.0.14-2.fc34.x86_64.rp 3.1 MB/s | 30 kB 00:00 (101/196): openmpi-devel-4.1.0-2.fc34.x86_64.rp 24 MB/s | 1.2 MB 00:00 (102/196): opensm-libs-3.3.23-5.fc34.x86_64.rpm 4.4 MB/s | 75 kB 00:00 (103/196): openssh-8.4p1-5.fc34.x86_64.rpm 17 MB/s | 420 kB 00:00 (104/196): openmpi-4.1.0-2.fc34.x86_64.rpm 25 MB/s | 2.7 MB 00:00 (105/196): openssh-clients-8.4p1-5.fc34.x86_64. 16 MB/s | 619 kB 00:00 (106/196): perl-B-1.80-469.fc34.x86_64.rpm 7.5 MB/s | 192 kB 00:00 (107/196): orangefs-2.9.8-1.fc34.x86_64.rpm 26 MB/s | 1.8 MB 00:00 (108/196): perl-Carp-1.50-457.fc33.noarch.rpm 1.2 MB/s | 29 kB 00:00 (109/196): perl-Data-Dumper-2.174-459.fc34.x86_ 5.8 MB/s | 56 kB 00:00 (110/196): perl-Class-Struct-0.66-469.fc34.noar 2.2 MB/s | 33 kB 00:00 (111/196): perl-DynaLoader-1.47-469.fc34.x86_64 2.8 MB/s | 40 kB 00:00 (112/196): perl-Errno-1.30-469.fc34.x86_64.rpm 3.5 MB/s | 26 kB 00:00 (113/196): perl-Exporter-5.74-458.fc33.noarch.r 2.5 MB/s | 32 kB 00:00 (114/196): perl-Fcntl-1.13-469.fc34.x86_64.rpm 2.2 MB/s | 32 kB 00:00 (115/196): perl-File-Basename-2.85-469.fc34.noa 4.3 MB/s | 28 kB 00:00 (116/196): perl-Encode-3.08-458.fc34.x86_64.rpm 27 MB/s | 1.8 MB 00:00 (117/196): perl-File-Compare-1.100.600-469.fc34 1.9 MB/s | 24 kB 00:00 (118/196): perl-File-Copy-2.34-469.fc34.noarch. 4.0 MB/s | 31 kB 00:00 (119/196): perl-File-Find-1.37-469.fc34.noarch. 4.8 MB/s | 37 kB 00:00 (120/196): perl-File-Path-2.18-1.fc34.noarch.rp 6.0 MB/s | 36 kB 00:00 (121/196): perl-File-Temp-0.231.100-1.fc34.noar 6.4 MB/s | 60 kB 00:00 (122/196): perl-File-stat-1.09-469.fc34.noarch. 3.3 MB/s | 28 kB 00:00 (123/196): perl-Getopt-Long-2.52-1.fc34.noarch. 4.5 MB/s | 60 kB 00:00 (124/196): perl-Getopt-Std-1.12-469.fc34.noarch 2.5 MB/s | 27 kB 00:00 (125/196): perl-HTTP-Tiny-0.076-457.fc33.noarch 6.9 MB/s | 55 kB 00:00 (126/196): perl-IO-1.43-469.fc34.x86_64.rpm 6.1 MB/s | 99 kB 00:00 (127/196): perl-IPC-Open3-1.21-469.fc34.noarch. 3.2 MB/s | 34 kB 00:00 (128/196): perl-MIME-Base64-3.16-1.fc34.x86_64. 3.1 MB/s | 30 kB 00:00 (129/196): perl-POSIX-1.94-469.fc34.x86_64.rpm 8.0 MB/s | 110 kB 00:00 (130/196): perl-Pod-Escapes-1.07-457.fc33.noarc 2.7 MB/s | 20 kB 00:00 (131/196): perl-PathTools-3.78-458.fc34.x86_64. 5.9 MB/s | 86 kB 00:00 (132/196): perl-Pod-Perldoc-3.28.01-458.fc33.no 6.9 MB/s | 84 kB 00:00 (133/196): perl-Pod-Simple-3.42-1.fc34.noarch.r 9.5 MB/s | 216 kB 00:00 (134/196): perl-Pod-Usage-2.01-1.fc34.noarch.rp 2.9 MB/s | 41 kB 00:00 (135/196): perl-SelectSaver-1.02-469.fc34.noarc 2.1 MB/s | 23 kB 00:00 (136/196): perl-Scalar-List-Utils-1.55-457.fc33 4.4 MB/s | 70 kB 00:00 (137/196): perl-Socket-2.031-1.fc34.x86_64.rpm 7.4 MB/s | 56 kB 00:00 (138/196): perl-Symbol-1.08-469.fc34.noarch.rpm 3.2 MB/s | 25 kB 00:00 (139/196): perl-Storable-3.21-457.fc33.x86_64.r 4.7 MB/s | 97 kB 00:00 (140/196): perl-Term-ANSIColor-5.01-458.fc33.no 4.9 MB/s | 49 kB 00:00 (141/196): perl-Term-Cap-1.17-457.fc33.noarch.r 2.9 MB/s | 22 kB 00:00 (142/196): perl-Text-ParseWords-3.30-457.fc33.n 2.1 MB/s | 16 kB 00:00 (143/196): perl-Text-Tabs+Wrap-2013.0523-457.fc 2.4 MB/s | 23 kB 00:00 (144/196): perl-Thread-Queue-3.14-457.fc33.noar 2.2 MB/s | 21 kB 00:00 (145/196): perl-Time-Local-1.300-4.fc33.noarch. 4.4 MB/s | 34 kB 00:00 (146/196): llvm-libs-11.1.0-0.2.rc2.fc34.x86_64 30 MB/s | 22 MB 00:00 (147/196): perl-constant-1.33-458.fc33.noarch.r 252 kB/s | 23 kB 00:00 (148/196): perl-if-0.60.800-469.fc34.noarch.rpm 285 kB/s | 25 kB 00:00 (149/196): perl-mro-1.23-469.fc34.x86_64.rpm 4.2 MB/s | 40 kB 00:00 (150/196): perl-interpreter-5.32.1-469.fc34.x86 5.7 MB/s | 83 kB 00:00 (151/196): perl-overloading-0.02-469.fc34.noarc 2.0 MB/s | 24 kB 00:00 (152/196): perl-overload-1.31-469.fc34.noarch.r 3.0 MB/s | 57 kB 00:00 (153/196): perl-parent-0.238-457.fc33.noarch.rp 1.2 MB/s | 14 kB 00:00 (154/196): perl-podlators-4.14-457.fc33.noarch. 6.8 MB/s | 113 kB 00:00 (155/196): perl-threads-2.25-457.fc33.x86_64.rp 6.5 MB/s | 58 kB 00:00 (156/196): perl-subs-1.03-469.fc34.noarch.rpm 799 kB/s | 23 kB 00:00 (157/196): perl-threads-shared-1.61-457.fc33.x8 2.5 MB/s | 44 kB 00:00 (158/196): pmix-3.2.2-1.fc34.x86_64.rpm 21 MB/s | 523 kB 00:00 (159/196): perl-libs-5.32.1-469.fc34.x86_64.rpm 19 MB/s | 2.1 MB 00:00 (160/196): procps-ng-3.3.16-2.fc34.x86_64.rpm 9.9 MB/s | 338 kB 00:00 (161/196): python-rpm-macros-3.9-11.fc34.noarch 2.7 MB/s | 14 kB 00:00 (162/196): python-setuptools-wheel-51.1.2-1.fc3 13 MB/s | 471 kB 00:00 (163/196): python3-3.9.1-4.fc34.x86_64.rpm 5.6 MB/s | 28 kB 00:00 (164/196): python-pip-wheel-20.3.3-3.fc34.noarc 13 MB/s | 1.3 MB 00:00 (165/196): python3-attrs-20.3.0-1.fc34.noarch.r 8.3 MB/s | 78 kB 00:00 (166/196): python3-devel-3.9.1-4.fc34.x86_64.rp 7.7 MB/s | 206 kB 00:00 (167/196): python3-Cython-0.29.21-4.fc34.x86_64 25 MB/s | 2.1 MB 00:00 (168/196): python3-iniconfig-1.1.1-1.fc34.noarc 727 kB/s | 16 kB 00:00 (169/196): python3-more-itertools-8.5.0-1.fc34. 4.3 MB/s | 66 kB 00:00 (170/196): perl-vars-1.05-469.fc34.noarch.rpm 104 kB/s | 24 kB 00:00 (171/196): python3-mpi4py-mpich-3.0.3-6.fc33.x8 10 MB/s | 467 kB 00:00 (172/196): python3-mpich-3.3.2-8.fc34.x86_64.rp 676 kB/s | 9.5 kB 00:00 (173/196): python3-openmpi-4.1.0-2.fc34.x86_64. 1.1 MB/s | 11 kB 00:00 (174/196): python3-packaging-20.8-1.fc34.noarch 6.4 MB/s | 68 kB 00:00 (175/196): python3-mpi4py-openmpi-3.0.3-6.fc33. 6.6 MB/s | 469 kB 00:00 (176/196): python3-pluggy-0.13.1-2.fc33.noarch. 1.9 MB/s | 38 kB 00:00 (177/196): python3-py-1.10.0-1.fc34.noarch.rpm 14 MB/s | 434 kB 00:00 (178/196): python3-pyparsing-2.4.7-4.fc33.noarc 5.4 MB/s | 149 kB 00:00 (179/196): python3-rpm-generators-11-12.fc34.no 3.1 MB/s | 29 kB 00:00 (180/196): python3-rpm-macros-3.9-11.fc34.noarc 1.8 MB/s | 13 kB 00:00 (181/196): python3-pytest-6.0.2-2.fc34.noarch.r 22 MB/s | 1.5 MB 00:00 (182/196): python3-toml-0.10.2-1.fc34.noarch.rp 6.2 MB/s | 39 kB 00:00 (183/196): python3-setuptools-51.1.2-1.fc34.noa 16 MB/s | 843 kB 00:00 (184/196): python3-libs-3.9.1-4.fc34.x86_64.rpm 29 MB/s | 7.4 MB 00:00 (185/196): readline-devel-8.1-1.fc34.x86_64.rpm 4.4 MB/s | 195 kB 00:00 (186/196): rhash-1.4.0-2.fc33.x86_64.rpm 4.3 MB/s | 183 kB 00:00 (187/196): rpm-mpi-hooks-6-6.fc33.noarch.rpm 1.7 MB/s | 11 kB 00:00 (188/196): systemd-rpm-macros-247.2-1.fc34.noar 2.9 MB/s | 27 kB 00:00 (189/196): systemd-pam-247.2-1.fc34.x86_64.rpm 15 MB/s | 313 kB 00:00 (190/196): tcl-8.6.10-5.fc34.x86_64.rpm 20 MB/s | 1.1 MB 00:00 (191/196): systemd-udev-247.2-1.fc34.x86_64.rpm 17 MB/s | 1.5 MB 00:00 (192/196): tcsh-6.22.03-1.fc34.x86_64.rpm 15 MB/s | 464 kB 00:00 (193/196): vim-filesystem-8.2.2311-1.fc34.noarc 2.0 MB/s | 23 kB 00:00 (194/196): ucx-1.9.0-1.fc34.x86_64.rpm 22 MB/s | 494 kB 00:00 (195/196): systemd-247.2-1.fc34.x86_64.rpm 28 MB/s | 4.2 MB 00:00 (196/196): xorg-x11-proto-devel-2019.1-5.fc34.n 7.7 MB/s | 261 kB 00:00 -------------------------------------------------------------------------------- Total 50 MB/s | 166 MB 00:03 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transaction Preparing : 1/1 Installing : libquadmath-11.0.0-0.17.fc34.x86_64 1/196 Installing : libmpc-1.2.1-1.fc34.x86_64 2/196 Installing : hwloc-libs-2.2.0-1.fc33.x86_64 3/196 Installing : cmake-filesystem-3.19.3-1.fc34.x86_64 4/196 Installing : libgfortran-11.0.0-0.17.fc34.x86_64 5/196 Installing : xorg-x11-proto-devel-2019.1-5.fc34.noarch 6/196 Installing : m4-1.4.18-16.fc34.x86_64 7/196 Installing : libnl3-3.5.0-5.fc33.x86_64 8/196 Installing : libibverbs-33.0-3.fc34.x86_64 9/196 Installing : libevent-2.1.12-2.fc34.x86_64 10/196 Installing : librdmacm-33.0-3.fc34.x86_64 11/196 Installing : python-rpm-macros-3.9-11.fc34.noarch 12/196 Installing : numactl-libs-2.0.14-2.fc34.x86_64 13/196 Installing : mpi4py-common-3.0.3-6.fc33.noarch 14/196 Installing : lua-5.4.2-1.fc34.x86_64 15/196 Installing : libedit-3.1-33.20191231cvs.fc33.x86_64 16/196 Installing : libXau-1.0.9-5.fc34.x86_64 17/196 Installing : libxcb-1.13.1-6.fc34.x86_64 18/196 Installing : libICE-1.0.10-5.fc34.x86_64 19/196 Installing : kmod-libs-28-1.fc34.x86_64 20/196 Installing : emacs-filesystem-1:27.1-2.fc34.noarch 21/196 Installing : libSM-1.2.3-7.fc34.x86_64 22/196 Installing : libXau-devel-1.0.9-5.fc34.x86_64 23/196 Installing : libxcb-devel-1.13.1-6.fc34.x86_64 24/196 Installing : llvm-libs-11.1.0-0.2.rc2.fc34.x86_64 25/196 Installing : lua-term-0.07-12.fc33.x86_64 26/196 Installing : libpsm2-11.2.86-7.fc34.x86_64 27/196 Installing : ucx-1.9.0-1.fc34.x86_64 28/196 Running scriptlet: ucx-1.9.0-1.fc34.x86_64 28/196 Installing : python3-rpm-macros-3.9-11.fc34.noarch 29/196 Installing : libpcap-14:1.9.1-6.fc34.x86_64 30/196 Installing : cpp-11.0.0-0.17.fc34.x86_64 31/196 Installing : vim-filesystem-2:8.2.2311-1.fc34.noarch 32/196 Installing : tcsh-6.22.03-1.fc34.x86_64 33/196 Running scriptlet: tcsh-6.22.03-1.fc34.x86_64 33/196 Installing : orangefs-2.9.8-1.fc34.x86_64 34/196 Installing : tcl-1:8.6.10-5.fc34.x86_64 35/196 Installing : systemd-rpm-macros-247.2-1.fc34.noarch 36/196 Installing : rhash-1.4.0-2.fc33.x86_64 37/196 Installing : python-setuptools-wheel-51.1.2-1.fc34.noarch 38/196 Installing : python-pip-wheel-20.3.3-3.fc34.noarch 39/196 Installing : procps-ng-3.3.16-2.fc34.x86_64 40/196 Running scriptlet: openssh-8.4p1-5.fc34.x86_64 41/196 Installing : openssh-8.4p1-5.fc34.x86_64 41/196 Installing : nettle-3.7-1.fc34.x86_64 42/196 Installing : gnutls-3.6.15-2.fc34.x86_64 43/196 Installing : ncurses-c++-libs-6.2-3.20200222.fc33.x86_64 44/196 Installing : ncurses-devel-6.2-3.20200222.fc33.x86_64 45/196 Installing : ncurses-6.2-3.20200222.fc33.x86_64 46/196 Installing : munge-libs-0.5.13-10.fc34.x86_64 47/196 Installing : pmix-3.2.2-1.fc34.x86_64 48/196 Installing : lua-posix-35.0-2.fc33.x86_64 49/196 Installing : lua-lpeg-1.0.2-5.fc33.x86_64 50/196 Installing : lua-json-1.3.2-16.fc33.noarch 51/196 Installing : lua-filesystem-1.6.3-14.fc33.x86_64 52/196 Installing : Lmod-8.4.15-1.fc34.x86_64 53/196 Running scriptlet: Lmod-8.4.15-1.fc34.x86_64 53/196 Installing : rpm-mpi-hooks-6-6.fc33.noarch 54/196 Installing : libuv-1:1.40.0-1.fc34.x86_64 55/196 Installing : libstdc++-devel-11.0.0-0.17.fc34.x86_64 56/196 Installing : libseccomp-2.5.0-3.fc33.x86_64 57/196 Installing : libnfnetlink-1.0.1-18.fc33.x86_64 58/196 Installing : libmnl-1.0.4-12.fc33.x86_64 59/196 Installing : libnetfilter_conntrack-1.0.8-1.fc34.x86_64 60/196 Installing : iptables-libs-1.8.7-1.fc34.x86_64 61/196 Installing : libfl2-2.6.4-6.fc34.x86_64 62/196 Installing : libcbor-0.7.0-2.fc34.x86_64 63/196 Installing : libargon2-20171227-5.fc33.x86_64 64/196 Installing : libX11-xcb-1.7.0-2.fc34.x86_64 65/196 Installing : libX11-common-1.7.0-2.fc34.noarch 66/196 Installing : libX11-1.7.0-2.fc34.x86_64 67/196 Installing : libX11-devel-1.7.0-2.fc34.x86_64 68/196 Installing : libXext-1.3.4-5.fc34.x86_64 69/196 Installing : libXt-1.2.0-3.fc34.x86_64 70/196 Installing : iv-0.1-0.1.20200818git14890c4.fc34.x86_64 71/196 Installing : less-575-1.fc34.x86_64 72/196 Installing : kmod-28-1.fc34.x86_64 73/196 Installing : kernel-headers-5.11.0-0.rc5.git0.1.fc34.x86_64 74/196 Installing : kbd-misc-2.4.0-1.fc34.noarch 75/196 Installing : kbd-2.4.0-1.fc34.x86_64 76/196 Installing : jsoncpp-1.9.4-2.fc34.x86_64 77/196 Installing : json-c-0.14-7.fc33.x86_64 78/196 Installing : isl-0.16.1-12.fc33.x86_64 79/196 Running scriptlet: groff-base-1.22.4-4.fc34.x86_64 80/196 Installing : groff-base-1.22.4-4.fc34.x86_64 80/196 Running scriptlet: groff-base-1.22.4-4.fc34.x86_64 80/196 Installing : perl-if-0.60.800-469.fc34.noarch 81/196 Installing : perl-Time-Local-2:1.300-4.fc33.noarch 82/196 Installing : perl-File-Path-2.18-1.fc34.noarch 83/196 Installing : perl-Pod-Escapes-1:1.07-457.fc33.noarch 84/196 Installing : perl-Text-Tabs+Wrap-2013.0523-457.fc33.noarch 85/196 Installing : perl-Class-Struct-0.66-469.fc34.noarch 86/196 Installing : perl-POSIX-1.94-469.fc34.x86_64 87/196 Installing : perl-Term-ANSIColor-5.01-458.fc33.noarch 88/196 Installing : perl-IPC-Open3-1.21-469.fc34.noarch 89/196 Installing : perl-HTTP-Tiny-0.076-457.fc33.noarch 90/196 Installing : perl-subs-1.03-469.fc34.noarch 91/196 Installing : perl-File-Temp-1:0.231.100-1.fc34.noarch 92/196 Installing : perl-Term-Cap-1.17-457.fc33.noarch 93/196 Installing : perl-Pod-Simple-1:3.42-1.fc34.noarch 94/196 Installing : perl-Socket-4:2.031-1.fc34.x86_64 95/196 Installing : perl-SelectSaver-1.02-469.fc34.noarch 96/196 Installing : perl-Symbol-1.08-469.fc34.noarch 97/196 Installing : perl-File-stat-1.09-469.fc34.noarch 98/196 Installing : perl-podlators-1:4.14-457.fc33.noarch 99/196 Installing : perl-Pod-Perldoc-3.28.01-458.fc33.noarch 100/196 Installing : perl-Fcntl-1.13-469.fc34.x86_64 101/196 Installing : perl-Text-ParseWords-3.30-457.fc33.noarch 102/196 Installing : perl-mro-1.23-469.fc34.x86_64 103/196 Installing : perl-IO-1.43-469.fc34.x86_64 104/196 Installing : perl-overloading-0.02-469.fc34.noarch 105/196 Installing : perl-Pod-Usage-4:2.01-1.fc34.noarch 106/196 Installing : perl-Errno-1.30-469.fc34.x86_64 107/196 Installing : perl-File-Basename-2.85-469.fc34.noarch 108/196 Installing : perl-Getopt-Std-1.12-469.fc34.noarch 109/196 Installing : perl-MIME-Base64-3.16-1.fc34.x86_64 110/196 Installing : perl-Scalar-List-Utils-4:1.55-457.fc33.x86_64 111/196 Installing : perl-constant-1.33-458.fc33.noarch 112/196 Installing : perl-Storable-1:3.21-457.fc33.x86_64 113/196 Installing : perl-overload-1.31-469.fc34.noarch 114/196 Installing : perl-parent-1:0.238-457.fc33.noarch 115/196 Installing : perl-vars-1.05-469.fc34.noarch 116/196 Installing : perl-Getopt-Long-1:2.52-1.fc34.noarch 117/196 Installing : perl-Carp-1.50-457.fc33.noarch 118/196 Installing : perl-Exporter-5.74-458.fc33.noarch 119/196 Installing : perl-PathTools-3.78-458.fc34.x86_64 120/196 Installing : perl-Encode-4:3.08-458.fc34.x86_64 121/196 Installing : perl-libs-4:5.32.1-469.fc34.x86_64 122/196 Installing : perl-interpreter-4:5.32.1-469.fc34.x86_64 123/196 Installing : perl-DynaLoader-1.47-469.fc34.x86_64 124/196 Installing : perl-File-Compare-1.100.600-469.fc34.noarch 125/196 Installing : perl-File-Copy-2.34-469.fc34.noarch 126/196 Installing : perl-threads-1:2.25-457.fc33.x86_64 127/196 Installing : perl-threads-shared-1.61-457.fc33.x86_64 128/196 Installing : perl-Thread-Queue-3.14-457.fc33.noarch 129/196 Installing : perl-Data-Dumper-2.174-459.fc34.x86_64 130/196 Installing : perl-B-1.80-469.fc34.x86_64 131/196 Installing : perl-File-Find-1.37-469.fc34.noarch 132/196 Installing : autoconf-2.69-35.fc34.noarch 133/196 Installing : automake-1.16.2-3.fc34.noarch 134/196 Installing : glibc-headers-x86-2.32.9000-26.fc34.noarch 135/196 Installing : libxcrypt-devel-4.4.17-1.fc34.x86_64 136/196 Installing : glibc-devel-2.32.9000-26.fc34.x86_64 137/196 Installing : gcc-11.0.0-0.17.fc34.x86_64 138/196 Installing : libquadmath-devel-11.0.0-0.17.fc34.x86_64 139/196 Installing : gcc-gfortran-11.0.0-0.17.fc34.x86_64 140/196 Installing : gdbm-libs-1:1.19-1.fc34.x86_64 141/196 Installing : python3-setuptools-51.1.2-1.fc34.noarch 142/196 Installing : python3-3.9.1-4.fc34.x86_64 143/196 Installing : python3-libs-3.9.1-4.fc34.x86_64 144/196 Installing : mpich-3.3.2-8.fc34.x86_64 145/196 Installing : cmake-rpm-macros-3.19.3-1.fc34.noarch 146/196 Installing : cmake-data-3.19.3-1.fc34.noarch 147/196 Installing : cmake-3.19.3-1.fc34.x86_64 148/196 Installing : python3-mpich-3.3.2-8.fc34.x86_64 149/196 Installing : python3-attrs-20.3.0-1.fc34.noarch 150/196 Installing : python3-iniconfig-1.1.1-1.fc34.noarch 151/196 Installing : python3-more-itertools-8.5.0-1.fc34.noarch 152/196 Installing : python3-pluggy-0.13.1-2.fc33.noarch 153/196 Installing : python3-py-1.10.0-1.fc34.noarch 154/196 Installing : python3-pyparsing-2.4.7-4.fc33.noarch 155/196 Installing : python3-packaging-20.8-1.fc34.noarch 156/196 Installing : python3-rpm-generators-11-12.fc34.noarch 157/196 Installing : python3-toml-0.10.2-1.fc34.noarch 158/196 Installing : acl-2.2.53-9.fc34.x86_64 159/196 Installing : device-mapper-1.02.173-1.fc33.x86_64 160/196 Installing : device-mapper-libs-1.02.173-1.fc33.x86_64 161/196 Installing : cryptsetup-libs-2.3.4-1.fc34.x86_64 162/196 Installing : dbus-1:1.12.20-2.fc33.x86_64 163/196 Installing : systemd-pam-247.2-1.fc34.x86_64 164/196 Installing : libfido2-1.6.0-1.fc34.x86_64 165/196 Running scriptlet: systemd-247.2-1.fc34.x86_64 166/196 Installing : systemd-247.2-1.fc34.x86_64 166/196 Running scriptlet: systemd-247.2-1.fc34.x86_64 166/196 Running scriptlet: systemd-udev-247.2-1.fc34.x86_64 167/196 Installing : systemd-udev-247.2-1.fc34.x86_64 167/196 Running scriptlet: systemd-udev-247.2-1.fc34.x86_64 167/196 Installing : dbus-common-1:1.12.20-2.fc33.noarch 168/196 Running scriptlet: dbus-common-1:1.12.20-2.fc33.noarch 168/196 Created symlink /etc/systemd/system/sockets.target.wants/dbus.socket → /usr/lib/systemd/system/dbus.socket. Created symlink /etc/systemd/user/sockets.target.wants/dbus.socket → /usr/lib/systemd/user/dbus.socket. Running scriptlet: dbus-broker-26-1.fc34.x86_64 169/196 Installing : dbus-broker-26-1.fc34.x86_64 169/196 Running scriptlet: dbus-broker-26-1.fc34.x86_64 169/196 Created symlink /etc/systemd/system/dbus.service → /usr/lib/systemd/system/dbus-broker.service. Created symlink /etc/systemd/user/dbus.service → /usr/lib/systemd/user/dbus-broker.service. Installing : infinipath-psm-3.3-26_g604758e_open.6.fc34.2.x86 170/196 Installing : openssh-clients-8.4p1-5.fc34.x86_64 171/196 Installing : libfabric-1.11.2-1.fc34.x86_64 172/196 Installing : libibumad-33.0-3.fc34.x86_64 173/196 Installing : opensm-libs-3.3.23-5.fc34.x86_64 174/196 Installing : openmpi-4.1.0-2.fc34.x86_64 175/196 Installing : python3-openmpi-4.1.0-2.fc34.x86_64 176/196 Installing : python3-mpi4py-openmpi-3.0.3-6.fc33.x86_64 177/196 Installing : openmpi-devel-4.1.0-2.fc34.x86_64 178/196 Installing : git-core-2.30.0-1.fc34.x86_64 179/196 Installing : python3-pytest-6.0.2-2.fc34.noarch 180/196 Installing : python3-devel-3.9.1-4.fc34.x86_64 181/196 Installing : python3-mpi4py-mpich-3.0.3-6.fc33.x86_64 182/196 Installing : mpich-devel-3.3.2-8.fc34.x86_64 183/196 Installing : python3-Cython-0.29.21-4.fc34.x86_64 184/196 Installing : annobin-9.58-1.fc34.x86_64 185/196 Installing : gcc-c++-11.0.0-0.17.fc34.x86_64 186/196 Installing : libtool-2.4.6-38.fc34.x86_64 187/196 Installing : iv-devel-0.1-0.1.20200818git14890c4.fc34.x86_64 188/196 Installing : libXext-devel-1.3.4-5.fc34.x86_64 189/196 Installing : libfl-devel-2.6.4-6.fc34.x86_64 190/196 Installing : readline-devel-8.1-1.fc34.x86_64 191/196 Installing : bison-3.7.4-1.fc34.x86_64 192/196 Installing : flex-2.6.4-6.fc34.x86_64 193/196 Installing : catch-devel-2.13.4-1.fc34.x86_64 194/196 Installing : bison-devel-3.7.4-1.fc34.x86_64 195/196 Installing : Random123-devel-1.13.2-4.fc34.x86_64 196/196 Running scriptlet: Random123-devel-1.13.2-4.fc34.x86_64 196/196 Verifying : libibumad-33.0-3.fc34.x86_64 1/196 Verifying : libibverbs-33.0-3.fc34.x86_64 2/196 Verifying : librdmacm-33.0-3.fc34.x86_64 3/196 Verifying : Lmod-8.4.15-1.fc34.x86_64 4/196 Verifying : Random123-devel-1.13.2-4.fc34.x86_64 5/196 Verifying : acl-2.2.53-9.fc34.x86_64 6/196 Verifying : annobin-9.58-1.fc34.x86_64 7/196 Verifying : autoconf-2.69-35.fc34.noarch 8/196 Verifying : automake-1.16.2-3.fc34.noarch 9/196 Verifying : bison-3.7.4-1.fc34.x86_64 10/196 Verifying : bison-devel-3.7.4-1.fc34.x86_64 11/196 Verifying : catch-devel-2.13.4-1.fc34.x86_64 12/196 Verifying : cmake-3.19.3-1.fc34.x86_64 13/196 Verifying : cmake-data-3.19.3-1.fc34.noarch 14/196 Verifying : cmake-filesystem-3.19.3-1.fc34.x86_64 15/196 Verifying : cmake-rpm-macros-3.19.3-1.fc34.noarch 16/196 Verifying : cpp-11.0.0-0.17.fc34.x86_64 17/196 Verifying : cryptsetup-libs-2.3.4-1.fc34.x86_64 18/196 Verifying : dbus-1:1.12.20-2.fc33.x86_64 19/196 Verifying : dbus-broker-26-1.fc34.x86_64 20/196 Verifying : dbus-common-1:1.12.20-2.fc33.noarch 21/196 Verifying : device-mapper-1.02.173-1.fc33.x86_64 22/196 Verifying : device-mapper-libs-1.02.173-1.fc33.x86_64 23/196 Verifying : emacs-filesystem-1:27.1-2.fc34.noarch 24/196 Verifying : flex-2.6.4-6.fc34.x86_64 25/196 Verifying : gcc-11.0.0-0.17.fc34.x86_64 26/196 Verifying : gcc-c++-11.0.0-0.17.fc34.x86_64 27/196 Verifying : gcc-gfortran-11.0.0-0.17.fc34.x86_64 28/196 Verifying : gdbm-libs-1:1.19-1.fc34.x86_64 29/196 Verifying : git-core-2.30.0-1.fc34.x86_64 30/196 Verifying : glibc-devel-2.32.9000-26.fc34.x86_64 31/196 Verifying : glibc-headers-x86-2.32.9000-26.fc34.noarch 32/196 Verifying : gnutls-3.6.15-2.fc34.x86_64 33/196 Verifying : groff-base-1.22.4-4.fc34.x86_64 34/196 Verifying : hwloc-libs-2.2.0-1.fc33.x86_64 35/196 Verifying : infinipath-psm-3.3-26_g604758e_open.6.fc34.2.x86 36/196 Verifying : iptables-libs-1.8.7-1.fc34.x86_64 37/196 Verifying : isl-0.16.1-12.fc33.x86_64 38/196 Verifying : iv-0.1-0.1.20200818git14890c4.fc34.x86_64 39/196 Verifying : iv-devel-0.1-0.1.20200818git14890c4.fc34.x86_64 40/196 Verifying : json-c-0.14-7.fc33.x86_64 41/196 Verifying : jsoncpp-1.9.4-2.fc34.x86_64 42/196 Verifying : kbd-2.4.0-1.fc34.x86_64 43/196 Verifying : kbd-misc-2.4.0-1.fc34.noarch 44/196 Verifying : kernel-headers-5.11.0-0.rc5.git0.1.fc34.x86_64 45/196 Verifying : kmod-28-1.fc34.x86_64 46/196 Verifying : kmod-libs-28-1.fc34.x86_64 47/196 Verifying : less-575-1.fc34.x86_64 48/196 Verifying : libICE-1.0.10-5.fc34.x86_64 49/196 Verifying : libSM-1.2.3-7.fc34.x86_64 50/196 Verifying : libX11-1.7.0-2.fc34.x86_64 51/196 Verifying : libX11-common-1.7.0-2.fc34.noarch 52/196 Verifying : libX11-devel-1.7.0-2.fc34.x86_64 53/196 Verifying : libX11-xcb-1.7.0-2.fc34.x86_64 54/196 Verifying : libXau-1.0.9-5.fc34.x86_64 55/196 Verifying : libXau-devel-1.0.9-5.fc34.x86_64 56/196 Verifying : libXext-1.3.4-5.fc34.x86_64 57/196 Verifying : libXext-devel-1.3.4-5.fc34.x86_64 58/196 Verifying : libXt-1.2.0-3.fc34.x86_64 59/196 Verifying : libargon2-20171227-5.fc33.x86_64 60/196 Verifying : libcbor-0.7.0-2.fc34.x86_64 61/196 Verifying : libedit-3.1-33.20191231cvs.fc33.x86_64 62/196 Verifying : libevent-2.1.12-2.fc34.x86_64 63/196 Verifying : libfabric-1.11.2-1.fc34.x86_64 64/196 Verifying : libfido2-1.6.0-1.fc34.x86_64 65/196 Verifying : libfl-devel-2.6.4-6.fc34.x86_64 66/196 Verifying : libfl2-2.6.4-6.fc34.x86_64 67/196 Verifying : libgfortran-11.0.0-0.17.fc34.x86_64 68/196 Verifying : libmnl-1.0.4-12.fc33.x86_64 69/196 Verifying : libmpc-1.2.1-1.fc34.x86_64 70/196 Verifying : libnetfilter_conntrack-1.0.8-1.fc34.x86_64 71/196 Verifying : libnfnetlink-1.0.1-18.fc33.x86_64 72/196 Verifying : libnl3-3.5.0-5.fc33.x86_64 73/196 Verifying : libpcap-14:1.9.1-6.fc34.x86_64 74/196 Verifying : libpsm2-11.2.86-7.fc34.x86_64 75/196 Verifying : libquadmath-11.0.0-0.17.fc34.x86_64 76/196 Verifying : libquadmath-devel-11.0.0-0.17.fc34.x86_64 77/196 Verifying : libseccomp-2.5.0-3.fc33.x86_64 78/196 Verifying : libstdc++-devel-11.0.0-0.17.fc34.x86_64 79/196 Verifying : libtool-2.4.6-38.fc34.x86_64 80/196 Verifying : libuv-1:1.40.0-1.fc34.x86_64 81/196 Verifying : libxcb-1.13.1-6.fc34.x86_64 82/196 Verifying : libxcb-devel-1.13.1-6.fc34.x86_64 83/196 Verifying : libxcrypt-devel-4.4.17-1.fc34.x86_64 84/196 Verifying : llvm-libs-11.1.0-0.2.rc2.fc34.x86_64 85/196 Verifying : lua-5.4.2-1.fc34.x86_64 86/196 Verifying : lua-filesystem-1.6.3-14.fc33.x86_64 87/196 Verifying : lua-json-1.3.2-16.fc33.noarch 88/196 Verifying : lua-lpeg-1.0.2-5.fc33.x86_64 89/196 Verifying : lua-posix-35.0-2.fc33.x86_64 90/196 Verifying : lua-term-0.07-12.fc33.x86_64 91/196 Verifying : m4-1.4.18-16.fc34.x86_64 92/196 Verifying : mpi4py-common-3.0.3-6.fc33.noarch 93/196 Verifying : mpich-3.3.2-8.fc34.x86_64 94/196 Verifying : mpich-devel-3.3.2-8.fc34.x86_64 95/196 Verifying : munge-libs-0.5.13-10.fc34.x86_64 96/196 Verifying : ncurses-6.2-3.20200222.fc33.x86_64 97/196 Verifying : ncurses-c++-libs-6.2-3.20200222.fc33.x86_64 98/196 Verifying : ncurses-devel-6.2-3.20200222.fc33.x86_64 99/196 Verifying : nettle-3.7-1.fc34.x86_64 100/196 Verifying : numactl-libs-2.0.14-2.fc34.x86_64 101/196 Verifying : openmpi-4.1.0-2.fc34.x86_64 102/196 Verifying : openmpi-devel-4.1.0-2.fc34.x86_64 103/196 Verifying : opensm-libs-3.3.23-5.fc34.x86_64 104/196 Verifying : openssh-8.4p1-5.fc34.x86_64 105/196 Verifying : openssh-clients-8.4p1-5.fc34.x86_64 106/196 Verifying : orangefs-2.9.8-1.fc34.x86_64 107/196 Verifying : perl-B-1.80-469.fc34.x86_64 108/196 Verifying : perl-Carp-1.50-457.fc33.noarch 109/196 Verifying : perl-Class-Struct-0.66-469.fc34.noarch 110/196 Verifying : perl-Data-Dumper-2.174-459.fc34.x86_64 111/196 Verifying : perl-DynaLoader-1.47-469.fc34.x86_64 112/196 Verifying : perl-Encode-4:3.08-458.fc34.x86_64 113/196 Verifying : perl-Errno-1.30-469.fc34.x86_64 114/196 Verifying : perl-Exporter-5.74-458.fc33.noarch 115/196 Verifying : perl-Fcntl-1.13-469.fc34.x86_64 116/196 Verifying : perl-File-Basename-2.85-469.fc34.noarch 117/196 Verifying : perl-File-Compare-1.100.600-469.fc34.noarch 118/196 Verifying : perl-File-Copy-2.34-469.fc34.noarch 119/196 Verifying : perl-File-Find-1.37-469.fc34.noarch 120/196 Verifying : perl-File-Path-2.18-1.fc34.noarch 121/196 Verifying : perl-File-Temp-1:0.231.100-1.fc34.noarch 122/196 Verifying : perl-File-stat-1.09-469.fc34.noarch 123/196 Verifying : perl-Getopt-Long-1:2.52-1.fc34.noarch 124/196 Verifying : perl-Getopt-Std-1.12-469.fc34.noarch 125/196 Verifying : perl-HTTP-Tiny-0.076-457.fc33.noarch 126/196 Verifying : perl-IO-1.43-469.fc34.x86_64 127/196 Verifying : perl-IPC-Open3-1.21-469.fc34.noarch 128/196 Verifying : perl-MIME-Base64-3.16-1.fc34.x86_64 129/196 Verifying : perl-POSIX-1.94-469.fc34.x86_64 130/196 Verifying : perl-PathTools-3.78-458.fc34.x86_64 131/196 Verifying : perl-Pod-Escapes-1:1.07-457.fc33.noarch 132/196 Verifying : perl-Pod-Perldoc-3.28.01-458.fc33.noarch 133/196 Verifying : perl-Pod-Simple-1:3.42-1.fc34.noarch 134/196 Verifying : perl-Pod-Usage-4:2.01-1.fc34.noarch 135/196 Verifying : perl-Scalar-List-Utils-4:1.55-457.fc33.x86_64 136/196 Verifying : perl-SelectSaver-1.02-469.fc34.noarch 137/196 Verifying : perl-Socket-4:2.031-1.fc34.x86_64 138/196 Verifying : perl-Storable-1:3.21-457.fc33.x86_64 139/196 Verifying : perl-Symbol-1.08-469.fc34.noarch 140/196 Verifying : perl-Term-ANSIColor-5.01-458.fc33.noarch 141/196 Verifying : perl-Term-Cap-1.17-457.fc33.noarch 142/196 Verifying : perl-Text-ParseWords-3.30-457.fc33.noarch 143/196 Verifying : perl-Text-Tabs+Wrap-2013.0523-457.fc33.noarch 144/196 Verifying : perl-Thread-Queue-3.14-457.fc33.noarch 145/196 Verifying : perl-Time-Local-2:1.300-4.fc33.noarch 146/196 Verifying : perl-constant-1.33-458.fc33.noarch 147/196 Verifying : perl-if-0.60.800-469.fc34.noarch 148/196 Verifying : perl-interpreter-4:5.32.1-469.fc34.x86_64 149/196 Verifying : perl-libs-4:5.32.1-469.fc34.x86_64 150/196 Verifying : perl-mro-1.23-469.fc34.x86_64 151/196 Verifying : perl-overload-1.31-469.fc34.noarch 152/196 Verifying : perl-overloading-0.02-469.fc34.noarch 153/196 Verifying : perl-parent-1:0.238-457.fc33.noarch 154/196 Verifying : perl-podlators-1:4.14-457.fc33.noarch 155/196 Verifying : perl-subs-1.03-469.fc34.noarch 156/196 Verifying : perl-threads-1:2.25-457.fc33.x86_64 157/196 Verifying : perl-threads-shared-1.61-457.fc33.x86_64 158/196 Verifying : perl-vars-1.05-469.fc34.noarch 159/196 Verifying : pmix-3.2.2-1.fc34.x86_64 160/196 Verifying : procps-ng-3.3.16-2.fc34.x86_64 161/196 Verifying : python-pip-wheel-20.3.3-3.fc34.noarch 162/196 Verifying : python-rpm-macros-3.9-11.fc34.noarch 163/196 Verifying : python-setuptools-wheel-51.1.2-1.fc34.noarch 164/196 Verifying : python3-3.9.1-4.fc34.x86_64 165/196 Verifying : python3-Cython-0.29.21-4.fc34.x86_64 166/196 Verifying : python3-attrs-20.3.0-1.fc34.noarch 167/196 Verifying : python3-devel-3.9.1-4.fc34.x86_64 168/196 Verifying : python3-iniconfig-1.1.1-1.fc34.noarch 169/196 Verifying : python3-libs-3.9.1-4.fc34.x86_64 170/196 Verifying : python3-more-itertools-8.5.0-1.fc34.noarch 171/196 Verifying : python3-mpi4py-mpich-3.0.3-6.fc33.x86_64 172/196 Verifying : python3-mpi4py-openmpi-3.0.3-6.fc33.x86_64 173/196 Verifying : python3-mpich-3.3.2-8.fc34.x86_64 174/196 Verifying : python3-openmpi-4.1.0-2.fc34.x86_64 175/196 Verifying : python3-packaging-20.8-1.fc34.noarch 176/196 Verifying : python3-pluggy-0.13.1-2.fc33.noarch 177/196 Verifying : python3-py-1.10.0-1.fc34.noarch 178/196 Verifying : python3-pyparsing-2.4.7-4.fc33.noarch 179/196 Verifying : python3-pytest-6.0.2-2.fc34.noarch 180/196 Verifying : python3-rpm-generators-11-12.fc34.noarch 181/196 Verifying : python3-rpm-macros-3.9-11.fc34.noarch 182/196 Verifying : python3-setuptools-51.1.2-1.fc34.noarch 183/196 Verifying : python3-toml-0.10.2-1.fc34.noarch 184/196 Verifying : readline-devel-8.1-1.fc34.x86_64 185/196 Verifying : rhash-1.4.0-2.fc33.x86_64 186/196 Verifying : rpm-mpi-hooks-6-6.fc33.noarch 187/196 Verifying : systemd-247.2-1.fc34.x86_64 188/196 Verifying : systemd-pam-247.2-1.fc34.x86_64 189/196 Verifying : systemd-rpm-macros-247.2-1.fc34.noarch 190/196 Verifying : systemd-udev-247.2-1.fc34.x86_64 191/196 Verifying : tcl-1:8.6.10-5.fc34.x86_64 192/196 Verifying : tcsh-6.22.03-1.fc34.x86_64 193/196 Verifying : ucx-1.9.0-1.fc34.x86_64 194/196 Verifying : vim-filesystem-2:8.2.2311-1.fc34.noarch 195/196 Verifying : xorg-x11-proto-devel-2019.1-5.fc34.noarch 196/196 Installed: Lmod-8.4.15-1.fc34.x86_64 Random123-devel-1.13.2-4.fc34.x86_64 acl-2.2.53-9.fc34.x86_64 annobin-9.58-1.fc34.x86_64 autoconf-2.69-35.fc34.noarch automake-1.16.2-3.fc34.noarch bison-3.7.4-1.fc34.x86_64 bison-devel-3.7.4-1.fc34.x86_64 catch-devel-2.13.4-1.fc34.x86_64 cmake-3.19.3-1.fc34.x86_64 cmake-data-3.19.3-1.fc34.noarch cmake-filesystem-3.19.3-1.fc34.x86_64 cmake-rpm-macros-3.19.3-1.fc34.noarch cpp-11.0.0-0.17.fc34.x86_64 cryptsetup-libs-2.3.4-1.fc34.x86_64 dbus-1:1.12.20-2.fc33.x86_64 dbus-broker-26-1.fc34.x86_64 dbus-common-1:1.12.20-2.fc33.noarch device-mapper-1.02.173-1.fc33.x86_64 device-mapper-libs-1.02.173-1.fc33.x86_64 emacs-filesystem-1:27.1-2.fc34.noarch flex-2.6.4-6.fc34.x86_64 gcc-11.0.0-0.17.fc34.x86_64 gcc-c++-11.0.0-0.17.fc34.x86_64 gcc-gfortran-11.0.0-0.17.fc34.x86_64 gdbm-libs-1:1.19-1.fc34.x86_64 git-core-2.30.0-1.fc34.x86_64 glibc-devel-2.32.9000-26.fc34.x86_64 glibc-headers-x86-2.32.9000-26.fc34.noarch gnutls-3.6.15-2.fc34.x86_64 groff-base-1.22.4-4.fc34.x86_64 hwloc-libs-2.2.0-1.fc33.x86_64 infinipath-psm-3.3-26_g604758e_open.6.fc34.2.x86_64 iptables-libs-1.8.7-1.fc34.x86_64 isl-0.16.1-12.fc33.x86_64 iv-0.1-0.1.20200818git14890c4.fc34.x86_64 iv-devel-0.1-0.1.20200818git14890c4.fc34.x86_64 json-c-0.14-7.fc33.x86_64 jsoncpp-1.9.4-2.fc34.x86_64 kbd-2.4.0-1.fc34.x86_64 kbd-misc-2.4.0-1.fc34.noarch kernel-headers-5.11.0-0.rc5.git0.1.fc34.x86_64 kmod-28-1.fc34.x86_64 kmod-libs-28-1.fc34.x86_64 less-575-1.fc34.x86_64 libICE-1.0.10-5.fc34.x86_64 libSM-1.2.3-7.fc34.x86_64 libX11-1.7.0-2.fc34.x86_64 libX11-common-1.7.0-2.fc34.noarch libX11-devel-1.7.0-2.fc34.x86_64 libX11-xcb-1.7.0-2.fc34.x86_64 libXau-1.0.9-5.fc34.x86_64 libXau-devel-1.0.9-5.fc34.x86_64 libXext-1.3.4-5.fc34.x86_64 libXext-devel-1.3.4-5.fc34.x86_64 libXt-1.2.0-3.fc34.x86_64 libargon2-20171227-5.fc33.x86_64 libcbor-0.7.0-2.fc34.x86_64 libedit-3.1-33.20191231cvs.fc33.x86_64 libevent-2.1.12-2.fc34.x86_64 libfabric-1.11.2-1.fc34.x86_64 libfido2-1.6.0-1.fc34.x86_64 libfl-devel-2.6.4-6.fc34.x86_64 libfl2-2.6.4-6.fc34.x86_64 libgfortran-11.0.0-0.17.fc34.x86_64 libibumad-33.0-3.fc34.x86_64 libibverbs-33.0-3.fc34.x86_64 libmnl-1.0.4-12.fc33.x86_64 libmpc-1.2.1-1.fc34.x86_64 libnetfilter_conntrack-1.0.8-1.fc34.x86_64 libnfnetlink-1.0.1-18.fc33.x86_64 libnl3-3.5.0-5.fc33.x86_64 libpcap-14:1.9.1-6.fc34.x86_64 libpsm2-11.2.86-7.fc34.x86_64 libquadmath-11.0.0-0.17.fc34.x86_64 libquadmath-devel-11.0.0-0.17.fc34.x86_64 librdmacm-33.0-3.fc34.x86_64 libseccomp-2.5.0-3.fc33.x86_64 libstdc++-devel-11.0.0-0.17.fc34.x86_64 libtool-2.4.6-38.fc34.x86_64 libuv-1:1.40.0-1.fc34.x86_64 libxcb-1.13.1-6.fc34.x86_64 libxcb-devel-1.13.1-6.fc34.x86_64 libxcrypt-devel-4.4.17-1.fc34.x86_64 llvm-libs-11.1.0-0.2.rc2.fc34.x86_64 lua-5.4.2-1.fc34.x86_64 lua-filesystem-1.6.3-14.fc33.x86_64 lua-json-1.3.2-16.fc33.noarch lua-lpeg-1.0.2-5.fc33.x86_64 lua-posix-35.0-2.fc33.x86_64 lua-term-0.07-12.fc33.x86_64 m4-1.4.18-16.fc34.x86_64 mpi4py-common-3.0.3-6.fc33.noarch mpich-3.3.2-8.fc34.x86_64 mpich-devel-3.3.2-8.fc34.x86_64 munge-libs-0.5.13-10.fc34.x86_64 ncurses-6.2-3.20200222.fc33.x86_64 ncurses-c++-libs-6.2-3.20200222.fc33.x86_64 ncurses-devel-6.2-3.20200222.fc33.x86_64 nettle-3.7-1.fc34.x86_64 numactl-libs-2.0.14-2.fc34.x86_64 openmpi-4.1.0-2.fc34.x86_64 openmpi-devel-4.1.0-2.fc34.x86_64 opensm-libs-3.3.23-5.fc34.x86_64 openssh-8.4p1-5.fc34.x86_64 openssh-clients-8.4p1-5.fc34.x86_64 orangefs-2.9.8-1.fc34.x86_64 perl-B-1.80-469.fc34.x86_64 perl-Carp-1.50-457.fc33.noarch perl-Class-Struct-0.66-469.fc34.noarch perl-Data-Dumper-2.174-459.fc34.x86_64 perl-DynaLoader-1.47-469.fc34.x86_64 perl-Encode-4:3.08-458.fc34.x86_64 perl-Errno-1.30-469.fc34.x86_64 perl-Exporter-5.74-458.fc33.noarch perl-Fcntl-1.13-469.fc34.x86_64 perl-File-Basename-2.85-469.fc34.noarch perl-File-Compare-1.100.600-469.fc34.noarch perl-File-Copy-2.34-469.fc34.noarch perl-File-Find-1.37-469.fc34.noarch perl-File-Path-2.18-1.fc34.noarch perl-File-Temp-1:0.231.100-1.fc34.noarch perl-File-stat-1.09-469.fc34.noarch perl-Getopt-Long-1:2.52-1.fc34.noarch perl-Getopt-Std-1.12-469.fc34.noarch perl-HTTP-Tiny-0.076-457.fc33.noarch perl-IO-1.43-469.fc34.x86_64 perl-IPC-Open3-1.21-469.fc34.noarch perl-MIME-Base64-3.16-1.fc34.x86_64 perl-POSIX-1.94-469.fc34.x86_64 perl-PathTools-3.78-458.fc34.x86_64 perl-Pod-Escapes-1:1.07-457.fc33.noarch perl-Pod-Perldoc-3.28.01-458.fc33.noarch perl-Pod-Simple-1:3.42-1.fc34.noarch perl-Pod-Usage-4:2.01-1.fc34.noarch perl-Scalar-List-Utils-4:1.55-457.fc33.x86_64 perl-SelectSaver-1.02-469.fc34.noarch perl-Socket-4:2.031-1.fc34.x86_64 perl-Storable-1:3.21-457.fc33.x86_64 perl-Symbol-1.08-469.fc34.noarch perl-Term-ANSIColor-5.01-458.fc33.noarch perl-Term-Cap-1.17-457.fc33.noarch perl-Text-ParseWords-3.30-457.fc33.noarch perl-Text-Tabs+Wrap-2013.0523-457.fc33.noarch perl-Thread-Queue-3.14-457.fc33.noarch perl-Time-Local-2:1.300-4.fc33.noarch perl-constant-1.33-458.fc33.noarch perl-if-0.60.800-469.fc34.noarch perl-interpreter-4:5.32.1-469.fc34.x86_64 perl-libs-4:5.32.1-469.fc34.x86_64 perl-mro-1.23-469.fc34.x86_64 perl-overload-1.31-469.fc34.noarch perl-overloading-0.02-469.fc34.noarch perl-parent-1:0.238-457.fc33.noarch perl-podlators-1:4.14-457.fc33.noarch perl-subs-1.03-469.fc34.noarch perl-threads-1:2.25-457.fc33.x86_64 perl-threads-shared-1.61-457.fc33.x86_64 perl-vars-1.05-469.fc34.noarch pmix-3.2.2-1.fc34.x86_64 procps-ng-3.3.16-2.fc34.x86_64 python-pip-wheel-20.3.3-3.fc34.noarch python-rpm-macros-3.9-11.fc34.noarch python-setuptools-wheel-51.1.2-1.fc34.noarch python3-3.9.1-4.fc34.x86_64 python3-Cython-0.29.21-4.fc34.x86_64 python3-attrs-20.3.0-1.fc34.noarch python3-devel-3.9.1-4.fc34.x86_64 python3-iniconfig-1.1.1-1.fc34.noarch python3-libs-3.9.1-4.fc34.x86_64 python3-more-itertools-8.5.0-1.fc34.noarch python3-mpi4py-mpich-3.0.3-6.fc33.x86_64 python3-mpi4py-openmpi-3.0.3-6.fc33.x86_64 python3-mpich-3.3.2-8.fc34.x86_64 python3-openmpi-4.1.0-2.fc34.x86_64 python3-packaging-20.8-1.fc34.noarch python3-pluggy-0.13.1-2.fc33.noarch python3-py-1.10.0-1.fc34.noarch python3-pyparsing-2.4.7-4.fc33.noarch python3-pytest-6.0.2-2.fc34.noarch python3-rpm-generators-11-12.fc34.noarch python3-rpm-macros-3.9-11.fc34.noarch python3-setuptools-51.1.2-1.fc34.noarch python3-toml-0.10.2-1.fc34.noarch readline-devel-8.1-1.fc34.x86_64 rhash-1.4.0-2.fc33.x86_64 rpm-mpi-hooks-6-6.fc33.noarch systemd-247.2-1.fc34.x86_64 systemd-pam-247.2-1.fc34.x86_64 systemd-rpm-macros-247.2-1.fc34.noarch systemd-udev-247.2-1.fc34.x86_64 tcl-1:8.6.10-5.fc34.x86_64 tcsh-6.22.03-1.fc34.x86_64 ucx-1.9.0-1.fc34.x86_64 vim-filesystem-2:8.2.2311-1.fc34.noarch xorg-x11-proto-devel-2019.1-5.fc34.noarch Complete! Finish: build setup for neuron-7.8.1-8.fc34.src.rpm Start: rpmbuild neuron-7.8.1-8.fc34.src.rpm Building target platforms: x86_64 Building for target x86_64 setting SOURCE_DATE_EPOCH=1611619200 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.r7vxNN + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf nrn-7.8.1 + /usr/bin/gzip -dc /builddir/build/SOURCES/neuron-7.8.1.tar.gz + /usr/bin/tar -xof - + STATUS=0 + '[' 0 -ne 0 ']' + cd nrn-7.8.1 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + /usr/bin/git init -q + /usr/bin/git config user.name rpm-build + /usr/bin/git config user.email '' + /usr/bin/git config gc.auto 0 + /usr/bin/git add --force . + /usr/bin/git commit -q --allow-empty -a --author 'rpm-build ' -m 'neuron-7.8.1 base' + /usr/bin/cat /builddir/build/SOURCES/0001-Unbundle-Random123.patch + /usr/bin/git apply --index --reject - Checking patch configure.ac... Checking patch src/Makefile.am... Applied patch configure.ac cleanly. Applied patch src/Makefile.am cleanly. + /usr/bin/git commit -q -m 0001-Unbundle-Random123.patch --author 'rpm-build ' + /usr/bin/cat /builddir/build/SOURCES/0002-Unbundle-catch.patch + /usr/bin/git apply --index --reject - Checking patch CMakeLists.txt... Applied patch CMakeLists.txt cleanly. + /usr/bin/git commit -q -m 0002-Unbundle-catch.patch --author 'rpm-build ' + /usr/bin/cat /builddir/build/SOURCES/0003-Disable-python-build-and-install.patch + /usr/bin/git apply --index --reject - Checking patch src/nrnpython/CMakeLists.txt... Applied patch src/nrnpython/CMakeLists.txt cleanly. + /usr/bin/git commit -q -m 0003-Disable-python-build-and-install.patch --author 'rpm-build ' + /usr/bin/cat /builddir/build/SOURCES/0004-Set-soversions-for-libs.patch + /usr/bin/git apply --index --reject - Checking patch CMakeLists.txt... Checking patch src/nrniv/CMakeLists.txt... Checking patch src/nrnpython/CMakeLists.txt... Applied patch CMakeLists.txt cleanly. Applied patch src/nrniv/CMakeLists.txt cleanly. Applied patch src/nrnpython/CMakeLists.txt cleanly. + /usr/bin/git commit -q -m 0004-Set-soversions-for-libs.patch --author 'rpm-build ' + /usr/bin/cat /builddir/build/SOURCES/0005-Correct-librxdmath-path-for-64bit.patch + /usr/bin/git apply --index --reject - Checking patch share/lib/python/neuron/rxd/rxd.py... Applied patch share/lib/python/neuron/rxd/rxd.py cleanly. + /usr/bin/git commit -q -m 0005-Correct-librxdmath-path-for-64bit.patch --author 'rpm-build ' + /usr/bin/cat /builddir/build/SOURCES/0006-Do-not-generate-version-info-at-buildtime.patch + /usr/bin/git apply --index --reject - Checking patch src/nrniv/CMakeLists.txt... Applied patch src/nrniv/CMakeLists.txt cleanly. + /usr/bin/git commit -q -m 0006-Do-not-generate-version-info-at-buildtime.patch --author 'rpm-build ' + find src -type f -executable '!' -name '*.sh' -exec chmod -x '{}' + + rm -rf src/Random123 + rm -rf src/readline ++ date +%Y-%m-%d + export TIMESTAMP=2021-01-26 + TIMESTAMP=2021-01-26 + cat + for f in bin/*_makefile.in + sed -r -i 's|(LIBTOOL.*=.*)\$\(pkgdatadir\)(.*)|\1$(bindir)\2|' bin/nrniv_makefile.in + for f in bin/*_makefile.in + sed -r -i 's|(LIBTOOL.*=.*)\$\(pkgdatadir\)(.*)|\1$(bindir)\2|' bin/nrnmech_makefile.in + for f in bin/*_makefile.in + sed -r -i 's|(LIBTOOL.*=.*)\$\(pkgdatadir\)(.*)|\1$(bindir)\2|' bin/nrnoc_makefile.in + sed -i '/CompilerFlagsHelpers/ d' cmake/ReleaseDebugAutoFlags.cmake + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.qaEZsT + umask 022 + cd /builddir/build/BUILD *** BUILDING neuron-7.8.1 *** + cd nrn-7.8.1 + export MPI_COMPILER=serial + MPI_COMPILER=serial + export MPI_SUFFIX= + MPI_SUFFIX= + export MPI_HOME=/usr + MPI_HOME=/usr + export MPI_BIN=/usr/bin + MPI_BIN=/usr/bin + export MPI_INCLUDE=/usr/include + MPI_INCLUDE=/usr/include + export MPI_LIB=/usr/lib64 + MPI_LIB=/usr/lib64 + export MPI_LIBFILE= + MPI_LIBFILE= + export MPI_YES=OFF + MPI_YES=OFF + export MPI_COMPILE_TYPE= + MPI_COMPILE_TYPE= + export MPI_SITEARCH=/usr/lib64/python3.9/site-packages + MPI_SITEARCH=/usr/lib64/python3.9/site-packages + export MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu + MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu + echo + echo '*** BUILDING neuron-7.8.1 ***' + echo + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + cmake -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_INCLUDEDIR:PATH=/usr/include -DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib64 -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr -DBUILD_SHARED_LIBS:BOOL=ON -DNRN_ENABLE_SHARED=ON -DNRN_ENABLE_INTERVIEWS=ON -DNRN_ENABLE_PYTHON=ON -DNRN_ENABLE_PYTHON_DYNAMIC=OFF -DNRN_ENABLE_THREADS=ON -DNRN_ENABLE_MEMACS=ON -DNRN_ENABLE_RX3D=ON -DNRN_ENABLE_CORENEURON=OFF -DNRN_ENABLE_TESTS=ON -DNRN_ENABLE_REL_RPATH=ON -DNRN_ENABLE_MODULE_INSTALL=ON -DNRN_ENABLE_INTERNAL_READLINE=OFF -DNRN_ENABLE_MPI=OFF -DMPI_INCLUDE_PATH=/usr/include -DMPI_LIBRARY= -DLIB_SUFFIX=64 -B x86_64-redhat-linux-gnu -- The C compiler identification is GNU 11.0.0 -- The CXX compiler identification is GNU 11.0.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/gcc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Setting build type to 'RelWithDebInfo' as none was specified. -- Found BISON: /usr/bin/bison (found version "3.7.4") -- Found FLEX: /usr/bin/flex (found version "2.6.4") -- Found Readline: /usr/include -- Found PythonInterp: /usr/bin/python3.9 (found version "3.9.1") -- Found Cython: /usr/bin/cython (found version "0.29.21") -- Using external Interviews from -- Found PythonInterp: /usr/bin/python3.9 (found suitable version "3.9.1", minimum required is "3") -- Found PythonLibs: /usr/lib64/libpython3.9.so -- Check if compiler accepts -pthread -- Check if compiler accepts -pthread - yes -- Found Threads: TRUE -- Found pytest: /usr/lib/python3.9/site-packages/pytest (found version "6.0.2") -- -- Configured NEURON 7.8 -- -- Some things you can do now: -- --------------+-------------------------------------------------------------- -- Command | Description -- --------------+-------------------------------------------------------------- -- make install | Will install NEURON to: /usr -- | Change the install location of NEURON using: -- | cmake -DCMAKE_INSTALL_PREFIX= -- make docs | Build the API documentation -- make uninstall| Removes files installed by make install (todo) -- --------------+-------------------------------------------------------------- -- Build option | Status -- --------------+-------------------------------------------------------------- -- BUILD_TYPE | RelWithDebInfo (allowed: Custom;Debug;Release;RelWithDebInfo;Fast) -- COMPILE FLAGS | -- Shared | ON -- Binary special| OFF -- Legacy FR | ON -- MPI | OFF -- Python | ON -- EXE | /usr/bin/python3.9 -- INC | /usr/include/python3.9 -- LIB | /usr/lib64/libpython3.9.so -- MODULE | ON -- DYNAMIC | OFF -- Readline | /usr/lib64/libreadline.so -- Curses | /usr/lib64/libcurses.so;/usr/lib64/libform.so -- RX3D | ON -- OptLevel | 0 -- Interviews | ON -- PATH | -- INC | /usr/include -- X11 (INC) | /usr/include -- CoreNEURON | OFF -- --------------+-------------------------------------------------------------- -- See documentation : https://www.neuron.yale.edu/neuron/ -- --------------+-------------------------------------------------------------- -- -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project: CMAKE_Fortran_FLAGS_RELEASE LIB_SUFFIX MPI_INCLUDE_PATH MPI_LIBRARY SHARE_INSTALL_PREFIX SYSCONF_INSTALL_DIR -- Build files have been written to: /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu + /usr/bin/make -O -j2 V=1 VERBOSE=1 -C x86_64-redhat-linux-gnu make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/cmake -S/builddir/build/BUILD/nrn-7.8.1 -B/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu --check-build-system CMakeFiles/Makefile.cmake 0 make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/CMakeFiles /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu//CMakeFiles/progress.marks make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f CMakeFiles/Makefile2 all /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/depend /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/CMakeFiles/hh_update.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/CMakeFiles/hh_update.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/CMakeFiles/hh_update.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/CMakeFiles/hh_update.dir/depend.internal". Scanning dependencies of target hh_update make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 0%] Update hh.mod for CoreNEURON compatibility sed "s/ RANGE minf/ GLOBAL minf/" /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.1 sed "s/ :TABLE minf/ TABLE minf/" /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.1 > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.2 /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.2 /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod /usr/bin/cmake -E remove /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.2 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 0%] Built target hh_update make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 0%] [BISON][modlunitparser] Building parser with bison 3.7.4 cd /builddir/build/BUILD/nrn-7.8.1/src/nrniv && /usr/bin/bison --defines=/builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.h -o /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 0%] [BISON][nocmodlparser] Building parser with bison 3.7.4 cd /builddir/build/BUILD/nrn-7.8.1/src/nrniv && /usr/bin/bison --defines=/builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.h -o /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y: warning: 3 shift/reduce conflicts [-Wconflicts-sr] /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y: note: rerun with option '-Wcounterexamples' to generate conflict counterexamples make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 0%] [FLEX][modlunitlexer] Building scanner with flex 2.6.4 cd /builddir/build/BUILD/nrn-7.8.1/src/nrniv && /usr/bin/flex -o/builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.l make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/modlunit.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/modlunit.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/modlunit.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/modlunit.dir/depend.internal". Scanning dependencies of target modlunit make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 0%] [BISON][nocmodlparser] Building parser with bison 3.7.4 cd /builddir/build/BUILD/nrn-7.8.1/src/nrniv && /usr/bin/bison --defines=/builddir/build/BUILD/nrn-7.8.1/src/nmodl/diffeq.h -o /builddir/build/BUILD/nrn-7.8.1/src/nmodl/diffeq.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/diffeq.y make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nmodl/diffeq.y: warning: 5 shift/reduce conflicts [-Wconflicts-sr] /builddir/build/BUILD/nrn-7.8.1/src/nmodl/diffeq.y: note: rerun with option '-Wcounterexamples' to generate conflict counterexamples make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 1%] [FLEX][nocmodllexer] Building scanner with flex 2.6.4 cd /builddir/build/BUILD/nrn-7.8.1/src/nrniv && /usr/bin/flex -o/builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.l make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nocmodl.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nocmodl.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nocmodl.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nocmodl.dir/depend.internal". Scanning dependencies of target nocmodl make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 1%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y: In function 'yyparse': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y:292:51: warning: unused variable 'd' [-Wunused-variable] 292 | {P1{Item *q; double d, unit_mag(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y:292:41: warning: unused variable 'q' [-Wunused-variable] 292 | {P1{Item *q; double d, unit_mag(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y: In function 'yyparse': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y:1127:48: warning: unused variable 'd' [-Wunused-variable] 1127 | {Item *q; double d, unit_mag(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y:1127:38: warning: unused variable 'q' [-Wunused-variable] 1127 | {Item *q; double d, unit_mag(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 1%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/lex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/lex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c:1471:16: warning: 'input' defined but not used [-Wunused-function] 1471 | #else | ^ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c:1428:17: warning: 'yyunput' defined but not used [-Wunused-function] 1428 | | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 2%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/consist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/consist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/consist.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/diffeq.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 2%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/declare.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/declare.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/declare.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 2%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:18:30: warning: missing braces around initializer [-Wmissing-braces] 18 | } keywords[] = { | ^ 19 | "VERBATIM", VERBATIM, | { } 20 | "ENDVERBATIM", END_VERBATIM, /* explicit in lex.l */ | { } 21 | "COMMENT", COMMENT, | { } 22 | "ENDCOMMENT", END_COMMENT, /* explicit in lex.l */ | { } 23 | "TITLE", TITLE, | { } 24 | "CONSTANT", CONSTANT, | { } 25 | "PARAMETER", PARAMETER, | { } 26 | "INDEPENDENT", INDEPENDENT, | { } 27 | "ASSIGNED", ASSIGNED, | { } 28 | "INITIAL", INITIAL1, | { } 29 | "TERMINAL", TERMINAL, | { } 30 | "DERIVATIVE", DERIVATIVE, | { } 31 | "EQUATION", EQUATION, | { } 32 | "BREAKPOINT", BREAKPOINT, | { } 33 | "CONDUCTANCE", CONDUCTANCE, | { } 34 | "SOLVE", SOLVE, | { } 35 | "STATE", STATE, | { } 36 | "STEPPED", STEPPED, | { } 37 | "LINEAR", LINEAR, | { } 38 | "NONLINEAR", NONLINEAR, | { } 39 | "DISCRETE", DISCRETE, | { } 40 | "FUNCTION", FUNCTION1, | { } 41 | "FUNCTION_TABLE", FUNCTION_TABLE, | { } 42 | "PROCEDURE", PROCEDURE, | { } 43 | "PARTIAL", PARTIAL, | { } 44 | "INT", INT, | { } 45 | "DEL2", DEL2, | { } 46 | "DEL", DEL, | { } 47 | "LOCAL", LOCAL, | { } 48 | "METHOD", USING, | { } 49 | "STEADYSTATE", USING, | { } 50 | "SENS", SENS, | { } 51 | "STEP", STEP, | { } 52 | "WITH", WITH, | { } 53 | "FROM", FROM, | { } 54 | "TO", TO, | { } 55 | "BY", BY, | { } 56 | "if", IF, | { } 57 | "else", ELSE, | { } 58 | "while", WHILE, | { } 59 | "IF", IF, | { } 60 | "ELSE", ELSE, | { } 61 | "WHILE", WHILE, | { } 62 | "START", START1, | { } 63 | "DEFINE", DEFINE1, | { } 64 | 65 | "KINETIC", KINETIC, | { } 66 | "CONSERVE", CONSERVE, | { } 67 | "PLOT", PLOT, | { } 68 | "VS", VS, | { } 69 | "LAG", LAG, | { } 70 | "RESET", RESET, | { } 71 | "MATCH", MATCH, | { } 72 | "MODEL_LEVEL", MODEL_LEVEL, /* inserted by merge */ | { } 73 | "SWEEP", SWEEP, | { } 74 | "FIRST", FIRST, | { } 75 | "LAST", LAST, | { } 76 | "COMPARTMENT", COMPARTMENT, | { } 77 | "LONGITUDINAL_DIFFUSION", LONGDIFUS, | { } 78 | "PUTQ", PUTQ, | { } 79 | "GETQ", GETQ, | { } 80 | "IFERROR", IFERROR, | { } 81 | "SOLVEFOR", SOLVEFOR, | { } 82 | "UNITS", UNITBLK, | { } 83 | "UNITSON", UNITSON, | { } 84 | "UNITSOFF", UNITSOFF, | { } 85 | "TABLE", TABLE, | { } 86 | "DEPEND", DEPEND, | { } 87 | "NEURON", NEURON, | { } 88 | "SUFFIX", SUFFIX, | { } 89 | "POINT_PROCESS", SUFFIX, | { } 90 | "ARTIFICIAL_CELL", SUFFIX, | { } 91 | "NONSPECIFIC_CURRENT", NONSPECIFIC, | { } 92 | "ELECTRODE_CURRENT", ELECTRODE_CURRENT, | { } 93 | "USEION", USEION, | { } 94 | "READ", READ, | { } 95 | "WRITE", WRITE, | { } 96 | "RANGE", RANGE, | make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' { } 97 | "SECTION", SECTION, | { } 98 | "VALENCE", VALENCE, | { } 99 | "GLOBAL", GLOBAL, | { } 100 | "POINTER", POINTER, | { } 101 | "BBCOREPOINTER", POINTER, | { } 102 | "EXTERNAL", EXTERNAL, | { } 103 | "INCLUDE", INCLUDE1, | { } 104 | "CONSTRUCTOR", CONSTRUCTOR, | { } 105 | "DESTRUCTOR", DESTRUCTOR, | { } 106 | "NET_RECEIVE", NETRECEIVE, | { } 107 | "BEFORE", BEFORE, /* before NEURON sets up cy' = f(y,t) */ | { } 108 | "AFTER", AFTER, /* after NEURON solves cy' = f(y, t) */ | { } 109 | "WATCH", WATCH, | { } 110 | "FOR_NETCONS", FOR_NETCONS, | { } 111 | "THREADSAFE", THREADSAFE, | { } 112 | "PROTECT", PROTECT, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:124:29: warning: missing braces around initializer [-Wmissing-braces] 124 | } special[] = { | ^ 125 | ";", SEMI, &semi, | { } 126 | "{", BEGINBLK, &beginblk, | { } 127 | "}", ENDBLK, &endblk, | { } 128 | 0, 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:135:29: warning: missing braces around initializer [-Wmissing-braces] 135 | } methods[] = { | ^ 136 | "adams", DERF | KINF, 0, | { } 137 | "runge", DERF | KINF, 0, | { } 138 | "euler", DERF | KINF, 0, | { } 139 | "adeuler", DERF | KINF, 1, | { } 140 | "heun", DERF | KINF, 0, | { } 141 | "adrunge", DERF | KINF, 1, | { } 142 | "newton", NLINF, 0, | { } 143 | "simplex", NLINF, 0, | { } 144 | "simeq", LINF, 0, | { } 145 | "seidel", LINF, 0, | { } 146 | "_advance", KINF, 0, | { } 147 | "sparse", KINF, 0, | { } 148 | "derivimplicit", DERF, 0, /* name hard wired in deriv.c */ | { } 149 | "cnexp", DERF, 0, | { } 150 | "clsoda", DERF | KINF, 0, /* Tolerance built in to | { } 151 | scopgear.c */ 152 | "after_cvode", 0, 0, | { } 153 | "cvode_t", 0, 0, | { } 154 | "cvode_t_v", 0, 0, | { } 155 | 0, 0, 0 | { 156 | }; | } make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/io.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/io.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/io.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c:1433:17: warning: 'yyunput' defined but not used [-Wunused-function] 1433 | | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/kinunit.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/consist.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/list.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/model.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/model.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c: In function 'openfiles': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c:145:36: warning: '%s' directive writing up to 8191 bytes into a region of size 8187 [-Wformat-overflow=] 145 | sprintf(modprefix, "%s", argv[1]); | ^~~~ In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:3, from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c:27: /usr/include/bits/stdio2.h:38:10: note: '__sprintf_chk' output between 1 and 8192 bytes into a destination of size 8187 38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/nrnunit.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c: In function 'massagederiv': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c:432:40: warning: unused variable 'solve_seen' [-Wunused-variable] 432 | int count = 0, deriv_implicit, solve_seen; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 4%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/passn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/passn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/passn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/discrete.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' In file included from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:4: /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c: In function 'lookup': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:27:30: warning: array subscript has type 'char' [-Wchar-subscripts] 27 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:25:38: note: in definition of macro 'ITERATE' 25 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:27:30: warning: array subscript has type 'char' [-Wchar-subscripts] 27 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:25:58: note: in definition of macro 'ITERATE' 25 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c: In function 'install': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:69:31: warning: array subscript has type 'char' [-Wchar-subscripts] 69 | sl = symlist[s[0]]; | ~^~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:16:30: warning: missing braces around initializer [-Wmissing-braces] 16 | } keywords[] = { | ^ 17 | "VERBATIM", VERBATIM, | { } 18 | "COMMENT", COMMENT, | { } 19 | "TITLE", MODEL, | { } 20 | "CONSTANT", CONSTANT, | { } 21 | "PARAMETER", PARAMETER, | { } 22 | "INDEPENDENT", INDEPENDENT, | { } 23 | "ASSIGNED", DEPENDENT, | { } 24 | "INITIAL", INITIAL1, | { } 25 | "TERMINAL", TERMINAL, | { } 26 | "DERIVATIVE", DERIVATIVE, | { } 27 | "EQUATION", EQUATION, | { } 28 | "BREAKPOINT", BREAKPOINT, | { } 29 | "CONDUCTANCE", CONDUCTANCE, | { } 30 | "SOLVE", SOLVE, | { } 31 | "STATE", STATE, | { } 32 | "STEPPED", STEPPED, | { } 33 | "LINEAR", LINEAR, | { } 34 | "NONLINEAR", NONLINEAR, | { } 35 | "DISCRETE", DISCRETE, | { } 36 | "FUNCTION", FUNCTION1, | { } 37 | "FUNCTION_TABLE", FUNCTION_TABLE, | { } 38 | "PROCEDURE", PROCEDURE, | { } 39 | "PARTIAL", PARTIAL, | { } 40 | "INT", INT, | { } 41 | "DEL2", DEL2, | { } 42 | "DEL", DEL, | { } 43 | "LOCAL", LOCAL, | { } 44 | "METHOD", USING, | { } 45 | "STEADYSTATE", USING, | { } 46 | "SENS", SENS, | { } 47 | "STEP", STEP, | { } 48 | "WITH", WITH, | { } 49 | "FROM", FROM, | { } 50 | "FORALL", FORALL1, | { } 51 | "TO", TO, | { } 52 | "BY", BY, | { } 53 | "if", IF, | { } 54 | "else", ELSE, | { } 55 | "while", WHILE, | { } 56 | "START", START1, | { } 57 | "DEFINE", DEFINE1, | { } 58 | 59 | "KINETIC", KINETIC, | { } 60 | "CONSERVE", CONSERVE, | { } 61 | "PLOT", PLOT, | { } 62 | "VS", VS, | { } 63 | "LAG", LAG, | { } 64 | "RESET", RESET, | { } 65 | "MATCH", MATCH, | { } 66 | "MODEL_LEVEL", MODEL_LEVEL, /* inserted by merge */ | { } 67 | "SWEEP", SWEEP, | { } 68 | "FIRST", FIRST, | { } 69 | "LAST", LAST, | { } 70 | "COMPARTMENT", COMPARTMENT, | { } 71 | "LONGITUDINAL_DIFFUSION", LONGDIFUS, | { } 72 | "PUTQ", PUTQ, | { } 73 | "GETQ", GETQ, | { } 74 | "IFERROR", IFERROR, | { } 75 | "SOLVEFOR", SOLVEFOR, | { } 76 | "UNITS", UNITS, | { } 77 | "UNITSON", UNITSON, | { } 78 | "UNITSOFF", UNITSOFF, | { } 79 | "TABLE", TABLE, | { } 80 | "DEPEND", DEPEND, | { } 81 | "NEURON", NEURON, | { } 82 | "SUFFIX", SUFFIX, | { } 83 | "POINT_PROCESS", SUFFIX, | { } 84 | "ARTIFICIAL_CELL", SUFFIX, | { } 85 | "NONSPECIFIC_CURRENT", NONSPECIFIC, | { } 86 | "ELECTRODE_CURRENT", ELECTRODE_CURRENT, | { } 87 | "SECTION", SECTION, | { } 88 | "RANGE", RANGE, | { } 89 | "USEION", USEION, | { } 90 | "READ", READ, | { } 91 | "WRITE", WRITE, | { } 92 | "VALENCE", VALENCE, | { } 93 | "CHARGE", VALENCE, | { } 94 | "GLOBAL", GLOBAL, | { } 95 | "POINTER", POINTER, | { } 96 | "BBCOREPOINTER", BBCOREPOINTER, | { } 97 | "EXTERNAL", EXTERNAL, | { } 98 | "INCLUDE", INCLUDE1, | { } 99 | "CONSTRUCTOR", CONSTRUCTOR, | { } 100 | "DESTRUCTOR", DESTRUCTOR, | { } 101 | "NET_RECEIVE", NETRECEIVE, | { } 102 | "BEFORE", BEFORE, /* before NEURON sets up cy' = f(y,t) */ | { } 103 | "AFTER", AFTER, /* after NEURON solves cy' = f(y, t) */ | { } 104 | "WATCH", WATCH, | { } 105 | "FOR_NETCONS", FOR_NETCONS, | { } 106 | "THREADSAFE", THREADSAFE, | { } 107 | "PROTECT", PROTECT, | { } 108 | "MUTEXLOCK", NRNMUTEXLOCK, | { } 109 | "MUTEXUNLOCK", NRNMUTEXUNLOCK, | { } 110 | "REPRESENTS", REPRESENTS, | { } 111 | 0, 0 | { 112 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:122:29: warning: missing braces around initializer [-Wmissing-braces] 122 | } special[] = { | ^ 123 | ";", SEMI, &semi, | { } 124 | "{", BEGINBLK, &beginblk, | { } 125 | "}", ENDBLK, &endblk, | { } 126 | 0, 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:133:29: warning: missing braces around initializer [-Wmissing-braces] 133 | } methods[] = { | ^ 134 | "adams", DERF | KINF, 0, | { } 135 | "runge", DERF | KINF, 0, | { } 136 | "euler", DERF | KINF, 0, | { } 137 | "adeuler", DERF | KINF, 1, | { } 138 | "heun", DERF | KINF, 0, | { } 139 | "adrunge", DERF | KINF, 1, | { } 140 | "gear", DERF | KINF, 1, | { } 141 | "newton", NLINF, 0, | { } 142 | "simplex", NLINF, 0, | { } 143 | "simeq", LINF, 0, | { } 144 | "seidel", LINF, 0, | { } 145 | "_advance", KINF, 0, | { } 146 | "sparse", KINF, 0, | { } 147 | "derivimplicit", DERF, 0, /* name hard wired in deriv.c */ | { } 148 | "cnexp", DERF, 0, /* see solve.c */ | { } 149 | "clsoda", DERF | KINF, 1, /* Tolerance built in to | { } 150 | scopgear.c */ 151 | "after_cvode", 0, 0, | { } 152 | "cvode_t", 0, 0, | { } 153 | "cvode_t_v", 0, 0, | { } 154 | 0, 0, 0 | { 155 | }; | } make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/io.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/io.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/io.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/units.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/units.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:76:1: warning: missing braces around initializer [-Wmissing-braces] 76 | { | ^ 77 | 1e-18, "atto", | { } 78 | 1e-15, "femto", | { } 79 | 1e-12, "pico", | { } 80 | 1e-9, "nano", | { } 81 | 1e-6, "micro", | { } 82 | 1e-3, "milli", | { } 83 | 1e-2, "centi", | { } 84 | 1e-1, "deci", | { } 85 | 1e1, "deka", | { } 86 | 1e2, "hecta", | { } 87 | 1e2, "hecto", | { } 88 | 1e3, "kilo", | { } 89 | 1e6, "mega", | { } 90 | 1e6, "meg", | { } 91 | 1e9, "giga", | { } 92 | 1e12, "tera", | { } 93 | 0.0, 0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'pu': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:660:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 660 | if(u > 1) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 662 | return(2); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'unit_stk_clean': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'punit': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:185:34: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 185 | for (i=usp; i!=unit_stack-1; --i) { | ~~~~~~~~~~^~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'unit_init': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/units1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/units1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units1.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'flux': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:251:29: warning: unused variable 'isfunc' [-Wunused-variable] 251 | int isfunc; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'kinetic_implicit': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:706:30: warning: unused variable 'sparsedec' [-Wunused-variable] 706 | int i, nstate, flag, sparsedec, firsttrans, firsttrans1; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'massageconserve': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1024:15: warning: variable 'qv' set but not used [-Wunused-but-set-variable] 1024 | Item* qv; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'kinlist': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1160:15: warning: variable 'qv' set but not used [-Wunused-but-set-variable] 1160 | Item* qv; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'single_channel': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1590:13: warning: variable 'nstate' set but not used [-Wunused-but-set-variable] 1590 | int nstate, i; | ^~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1415:14: warning: 'astmt_last' defined but not used [-Wunused-variable] 1415 | static Item* astmt_last; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:120:12: warning: 'sparsedeclared' defined but not used [-Wunused-function] 120 | static int sparsedeclared(i) int i; { | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:110:14: warning: 'instance_loop' defined but not used [-Wunused-function] 110 | static char* instance_loop() { | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 6%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/list.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 7%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.c:77:13: warning: 'pgm_name' defined but not used [-Wunused-variable] 77 | static char pgm_name[] = "nmodl"; | ^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 7%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'parout': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:224:16: warning: unused variable 'j' [-Wunused-variable] 224 | int i, j, ioncount, pointercount, gind, emit_check_table_thread; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'decode_limits': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:1377:16: warning: unused variable 'd1' [-Wunused-variable] 1377 | double d1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'decode_tolerance': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:1404:16: warning: unused variable 'd1' [-Wunused-variable] 1404 | double d1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'cvode_rw_cur': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2537:17: warning: variable 'sion' set but not used [-Wunused-but-set-variable] 2537 | Symbol* sion; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'net_receive': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2566:16: warning: unused variable 'b' [-Wunused-variable] 2566 | int i, b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'conductance_hint': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2744:15: warning: unused variable 'q' [-Wunused-variable] 2744 | Item* q; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:180:12: warning: 'cvode_index' defined but not used [-Wunused-variable] 180 | static int cvode_index; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:177:12: warning: 'cond_index' defined but not used [-Wunused-variable] 177 | static int cond_index; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 6%] Linking C executable ../../bin/modlunit cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/modlunit.dir/link.txt --verbose=1 /usr/bin/gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o CMakeFiles/modlunit.dir/__/modlunit/lex.c.o CMakeFiles/modlunit.dir/__/modlunit/consist.c.o CMakeFiles/modlunit.dir/__/modlunit/declare.c.o CMakeFiles/modlunit.dir/__/modlunit/init.c.o CMakeFiles/modlunit.dir/__/modlunit/io.c.o CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o CMakeFiles/modlunit.dir/__/modlunit/list.c.o CMakeFiles/modlunit.dir/__/modlunit/model.c.o CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o CMakeFiles/modlunit.dir/__/modlunit/passn.c.o CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o CMakeFiles/modlunit.dir/__/modlunit/units.c.o CMakeFiles/modlunit.dir/__/modlunit/units1.c.o CMakeFiles/modlunit.dir/__/modlunit/version.c.o -o ../../bin/modlunit make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 7%] Built target modlunit make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/rxdmath.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/rxdmath.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/rxdmath.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/rxdmath.dir/depend.internal". Scanning dependencies of target rxdmath make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 8%] Building C object src/nrnpython/CMakeFiles/rxdmath.dir/rxdmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/gcc -DHAVE_CONFIG_H -Drxdmath_EXPORTS -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/rxdmath.dir/rxdmath.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxdmath.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 8%] Linking C shared library ../../lib/librxdmath.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/cmake -E cmake_link_script CMakeFiles/rxdmath.dir/link.txt --verbose=1 /usr/bin/gcc -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,librxdmath.so.0.0.0 -o ../../lib/librxdmath.so.0.0.0 CMakeFiles/rxdmath.dir/rxdmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/cmake -E cmake_symlink_library ../../lib/librxdmath.so.0.0.0 ../../lib/librxdmath.so.0.0.0 ../../lib/librxdmath.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 8%] Built target rxdmath make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 7%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/noccout.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend.internal". Scanning dependencies of target rxd_cython_generated make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 8%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'vectorize_scan_for_func': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:403:13: warning: unused variable 'b' [-Wunused-variable] 403 | int b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:402:19: warning: unused variable 'qq' [-Wunused-variable] 402 | Item* q, *qq; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'defarg': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:425:25: warning: unused variable 'q3' [-Wunused-variable] 425 | Item *q3, *q; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'hocfunchack': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:959:15: warning: unused variable 'q' [-Wunused-variable] 959 | Item *q; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 8%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c: In function 'general_discon_adjust': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c:158:7: warning: unused variable 'i' [-Wunused-variable] 158 | int i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/partial.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/sens.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/simultan.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 8%] Generating ctng.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && /usr/bin/cython -2 ctng.pyx -o /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/ctng.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/cy_cpp_filt.sh /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/ctng.cpp + file=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/ctng.cpp + mingw= + test x = x1 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c: In function 'whileloop': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c:393:15: warning: variable 'cp' set but not used [-Wunused-but-set-variable] 393 | char *cp=0; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:3: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c: In function 'lookup': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:25:30: warning: array subscript has type 'char' [-Wchar-subscripts] 25 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.h:110:38: note: in definition of macro 'ITERATE' 110 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:25:30: warning: array subscript has type 'char' [-Wchar-subscripts] 25 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.h:110:58: note: in definition of macro 'ITERATE' 110 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c: In function 'install': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:65:31: warning: array subscript has type 'char' [-Wchar-subscripts] 65 | sl = symlist[s[0]]; | ~^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/units.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/units.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/units.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nmodl/units.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:76:1: warning: missing braces around initializer [-Wmissing-braces] 76 | { | ^ 77 | 1e-18, "atto", | { } 78 | 1e-15, "femto", | { } 79 | 1e-12, "pico", | { } 80 | 1e-9, "nano", | { } 81 | 1e-6, "micro", | { } 82 | 1e-3, "milli", | { } 83 | 1e-2, "centi", | { } 84 | 1e-1, "deci", | { } 85 | 1e1, "deka", | { } 86 | 1e2, "hecta", | { } 87 | 1e2, "hecto", | { } 88 | 1e3, "kilo", | { } 89 | 1e6, "mega", | { } 90 | 1e6, "meg", | { } 91 | 1e9, "giga", | { } 92 | 1e12, "tera", | { } 93 | 0.0, 0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'pu': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:660:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 660 | if(u > 1) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 662 | return(2); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'unit_stk_clean': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'punit': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:185:34: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 185 | for (i=usp; i!=unit_stack-1; --i) { | ~~~~~~~~~~^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'unit_init': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 9%] Generating surfaces.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && /usr/bin/cython -2 surfaces.pyx -o /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/surfaces.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/cy_cpp_filt.sh /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/surfaces.cpp + file=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/surfaces.cpp + mingw= + test x = x1 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Generating graphicsPrimitives.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && /usr/bin/cython -2 graphicsPrimitives.pyx -o /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/graphicsPrimitives.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/cy_cpp_filt.sh /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/graphicsPrimitives.cpp + file=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/graphicsPrimitives.cpp + mingw= + test x = x1 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Built target rxd_cython_generated make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend.internal". Scanning dependencies of target rx3dextensions_0 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/runpy.sh /usr/bin/python3.9 runpy /usr/bin/python3.9 running build_ext + echo runpy /usr/bin/python3.9 + pyexe=/usr/bin/python3.9 + mingw= + shift + test x = x1 + /usr/bin/python3.9 setup.py build_ext --build-lib=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib/python make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Built target rx3dextensions_0 make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend.internal". Scanning dependencies of target rx3d make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build make[2]: Nothing to be done for 'share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build'. make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Built target rx3d make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Linking C executable ../../bin/nocmodl cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nocmodl.dir/link.txt --verbose=1 /usr/bin/gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o CMakeFiles/nocmodl.dir/__/nmodl/init.c.o CMakeFiles/nocmodl.dir/__/nmodl/io.c.o CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o CMakeFiles/nocmodl.dir/__/nmodl/list.c.o CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o CMakeFiles/nocmodl.dir/__/nmodl/units.c.o CMakeFiles/nocmodl.dir/__/nmodl/version.c.o -o ../../bin/nocmodl make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Built target nocmodl make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Generating ../../../src/nrnoc/apcount.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Generating ../nrnoc/hocusr.h cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -E -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/neuron.h > neuron.tmp1 cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed /^#/d neuron.tmp1 > neuron.tmp2 cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/python3.9 /builddir/build/BUILD/nrn-7.8.1/src/oc/mk_hocusr_h.py < neuron.tmp2 > temp2hoc cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed s/\"nrnhoc_topology\"/\"topology\"/ temp2hoc > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc/hocusr.h make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Generating ../../../src/nrnoc/exp2syn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c Thread Safe make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 10%] Generating ../../../src/nrnoc/expsyn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 11%] Generating ../../../src/nrnoc/feature.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c Notice: VERBATIM blocks are not thread safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 11%] Generating ../../../src/nrnoc/hh.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 11%] Generating ../../../src/nrnoc/intfire1.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 11%] Generating ../../../src/nrnoc/intfire2.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 11%] Generating ../../../src/nrnoc/intfire4.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 11%] Generating ../../../src/nrnoc/oclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 11%] Generating ../../../src/nrnoc/netstim.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.mod Notice: ARTIFICIAL_CELL is a synonym for POINT_PROCESS which hints that it only affects and is affected by discrete events. As such it is not located in a section and is not associated with an integrator cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 12%] Generating ../../../src/nrnoc/passive.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 12%] Generating ../../../src/nrnoc/pattern.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.mod Notice: ARTIFICIAL_CELL is a synonym for POINT_PROCESS which hints that it only affects and is affected by discrete events. As such it is not located in a section and is not associated with an integrator cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c Notice: Use of POINTER is not thread safe. Notice: VERBATIM blocks are not thread safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 13%] Generating ../../../src/nrnoc/ppmark.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c Thread Safe make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 13%] Generating ../../../src/nrnoc/stim.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 13%] Generating ../../../src/nrnoc/svclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 14%] Generating ../../../src/nrnoc/syn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 14%] Generating ../../../src/nrnoc/vclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c Notice: VERBATIM blocks are not thread safe Notice: LINEAR is not thread safe. make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 14%] [BISON][ocparser] Building parser with bison 3.7.4 cd /builddir/build/BUILD/nrn-7.8.1/src/nrniv && /usr/bin/bison --defines=/builddir/build/BUILD/nrn-7.8.1/src/oc/parse.h -o /builddir/build/BUILD/nrn-7.8.1/src/oc/parse.c /builddir/build/BUILD/nrn-7.8.1/src/oc/parse.y make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/oc/parse.y: warning: 98 shift/reduce conflicts [-Wconflicts-sr] /builddir/build/BUILD/nrn-7.8.1/src/oc/parse.y: note: rerun with option '-Wcounterexamples' to generate conflict counterexamples make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nrniv_lib.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nrniv_lib.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nrniv_lib.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nrniv_lib.dir/depend.internal". Scanning dependencies of target nrniv_lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/apwindow.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/axis.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/bndedval.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/cbwidget.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/epsprint.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:38: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_real_radix2.c: In function 'int nrngsl_fft_real_radix2_transform(double*, size_t, size_t)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_real_radix2.c:91:7: warning: variable 'status' set but not used [-Wunused-but-set-variable] 91 | int status; | ^~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:39: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_hc_radix2.c: In function 'int nrngsl_fft_halfcomplex_radix2_transform(double*, size_t, size_t)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_hc_radix2.c:63:7: warning: variable 'status' set but not used [-Wunused-but-set-variable] 63 | int status; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp: In function 'void nrn_convlv(double*, long unsigned int, double*, long unsigned int, int, double*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:98:21: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 98 | for (i=1; i < n2; ++i) { | ~~^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:86:21: warning: unused variable 'x_' [-Wunused-variable] 86 | double scl, x_; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp: In function 'void nrn_spctrm(double*, double*, int, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:149:13: warning: variable 'ainv' set but not used [-Wunused-but-set-variable] 149 | double a, ainv, wfac, x_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:149:25: warning: unused variable 'x_' [-Wunused-variable] 149 | double a, ainv, wfac, x_; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/checkpnt.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'int LoadGIF(const char*, PICINFO*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:288:15: warning: variable 'ch' set but not used [-Wunused-but-set-variable] 288 | int ch, j, sbsize, cmtlen; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:156:22: warning: unused variable 'ch1' [-Wunused-variable] 156 | register byte ch, ch1, *origptr; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'int readImage(PICINFO*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:490:34: warning: unused variable 'picptr' [-Wunused-variable] 490 | register byte ch, ch1, *ptr1, *picptr; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:96:5: warning: 'BytesPerScanline' defined but not used [-Wunused-variable] 96 | BytesPerScanline, /* bytes per scanline in output raster */ | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'gif_image(char const*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:43:16: warning: 'image' may be used uninitialized in this function [-Wmaybe-uninitialized] 43 | return image; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graphvec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grglyph.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp: In member function 'virtual void HocMark::pick(ivCanvas*, const ivAllocation&, int, ivHit&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp:147:23: warning: unused variable 'x' [-Wunused-variable] 147 | Coord x = h.left(), y = h.bottom(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp:147:37: warning: unused variable 'y' [-Wunused-variable] 147 | Coord x = h.left(), y = h.bottom(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/hocmark.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/htlist.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In function 'double ivoc_view_size(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:433:13: warning: unused variable 'i' [-Wunused-variable] 433 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'void Graph::ascii_save(std::ostream&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:1692:37: warning: unused variable 'j' [-Wunused-variable] 1692 | int j, jcnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'virtual void Graph::wholeplot(ivCoord&, ivCoord&, ivCoord&, ivCoord&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:1812:20: warning: unused variable 'gl' [-Wunused-variable] 1812 | GraphLine* gl; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'void Graph::cross_action(char, GPolyLine*, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:2064:22: warning: unused variable 'buf' [-Wunused-variable] 2064 | char buf[256]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'virtual void LineExtension::request(ivRequisition&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:3392:21: warning: unused variable 'eps' [-Wunused-variable] 3392 | const float eps = 1e-4; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/idraw.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivoc.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp: In function 'bool nrn_optarg_on(const char*, int*, const char**)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:337:15: warning: unused variable 'a' [-Wunused-variable] 337 | char* a; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:332:13: warning: 'bool nrn_optarg_on(const char*, int*, char**)' declared 'static' but never defined [-Wunused-function] 332 | static bool nrn_optarg_on(const char* opt, int* argc, char** argv); | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:333:14: warning: 'char* nrn_optarg(const char*, int*, char**)' declared 'static' but never defined [-Wunused-function] 333 | static char* nrn_optarg(const char* opt, int* argc, char** argv); | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:334:12: warning: 'int nrn_optargint(const char*, int*, char**, int)' declared 'static' but never defined [-Wunused-function] 334 | static int nrn_optargint(const char* opt, int* argc, char** argv, int dflt); | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:32: /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:93:8: warning: when initialized here [-Wreorder] 93 | inline RandomInteger::RandomInteger(long low, long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:99:8: warning: when initialized here [-Wreorder] 99 | inline RandomInteger::RandomInteger(long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:106:8: warning: when initialized here [-Wreorder] 106 | inline RandomInteger::RandomInteger(RNG *gen) | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp: In function 'void steer_x(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp:731:17: warning: unused variable 's' [-Wunused-variable] 731 | Symbol* s = hoc_spop(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp: In function 'void* cons(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp:139:1: warning: control reaches end of non-void function [-Wreturn-type] 139 | } | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp: In function 'int nrn_feround(int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp:37:13: warning: unused variable 'm' [-Wunused-variable] 37 | int m; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_fread(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:445:12: note: in expansion of macro 'FRead' 445 | FRead(xs,sizeof(short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:454:12: note: in expansion of macro 'FRead' 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:460:12: note: in expansion of macro 'FRead' 460 | FRead(xf,sizeof(float),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:472:12: note: in expansion of macro 'FRead' 472 | FRead(xi,sizeof(unsigned short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:483:12: note: in expansion of macro 'FRead' 483 | FRead(xc,sizeof(char),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:418:15: warning: unused variable 's' [-Wunused-variable] 418 | void* s = (void*)(vp->vec()); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_vwrite(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:532:12: note: in expansion of macro 'FWrite' 532 | FWrite(xi,sizeof(int),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:541:12: note: in expansion of macro 'FWrite' 541 | FWrite(x,sizeof(double),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:551:12: note: in expansion of macro 'FWrite' 551 | FWrite(xf,sizeof(float),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:577:12: note: in expansion of macro 'FWrite' 577 | FWrite(x,sizeof(unsigned short),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:602:12: note: in expansion of macro 'FWrite' 602 | FWrite(x,sizeof(char),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_vread(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:658:12: note: in expansion of macro 'FRead' 658 | FRead(xi,sizeof(int),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:668:12: note: in expansion of macro 'FRead' 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__elem(i),double) } | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:677:12: note: in expansion of macro 'FRead' 677 | FRead(xf,sizeof(float),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | } | ~ 682 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 683 | break; | ~~~~~~ 684 | } | ~ 685 | | 686 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 689 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 691 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 692 | | 693 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:694:12: note: in expansion of macro 'FRead' 694 | FRead(xi,sizeof(unsigned short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | } | ~ 682 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 683 | break; | ~~~~~~ 684 | } | ~ 685 | | 686 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 689 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 691 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 692 | | 693 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (i=0;ielem(i) = double(xi[i]/sf +min); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 698 | } | ~ 699 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 700 | break; | ~~~~~~ 701 | } | ~ 702 | | 703 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 704 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 705 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 706 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 707 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 708 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 709 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 710 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:710:12: note: in expansion of macro 'FRead' 710 | FRead(xc,sizeof(char),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:614:15: warning: unused variable 's' [-Wunused-variable] 614 | void* s = (void*)(vp->vec()); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'Object** v_hist(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:1127:16: warning: unused variable 'high' [-Wunused-variable] 1127 | double high = start+step*size; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_indwhere(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:1755:16: warning: unused variable 'm' [-Wunused-variable] 1755 | int i, iarg, m=0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'v_medfltr(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:3206:13: warning: 'operator delete[](void*)' called on pointer returned from a mismatched allocation function [-Wmismatched-new-delete] 3206 | delete [] res; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:3191:33: note: returned from 'calloc' 3191 | double *res = (double *)calloc(n,(unsigned)sizeof(double)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'call_simplex(double*, int, IvocVect*, IvocVect*, char*, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:2694:17: warning: 'retval' may be used uninitialized in this function [-Wmaybe-uninitialized] 2694 | return (retval); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/objcmd.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbrowsr.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp: In member function 'virtual void OcBox::box_append(OcGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp:577:20: warning: unused variable 'wk' [-Wunused-variable] 577 | WidgetKit& wk = *WidgetKit::instance(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp: In member function 'virtual void OcDeck::box_append(OcGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp:293:20: warning: unused variable 'wk' [-Wunused-variable] 293 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp:294:20: warning: unused variable 'lk' [-Wunused-variable] 294 | LayoutKit& lk = *LayoutKit::instance(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp: In function 'bool makePath(const string&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp:586:21: warning: comparison of integer expressions of different signedness: 'int' and 'const size_type' {aka 'const long unsigned int'} [-Wsign-compare] 586 | if (pos == std::string::npos) | ~~~~^~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:84:13: warning: 'void readmore()' defined but not used [-Wunused-function] 84 | static void readmore() { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:40:24: warning: 'filequeue' defined but not used [-Wunused-variable] 40 | static CopyStringList* filequeue; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:16:14: warning: 'help_pipe' defined but not used [-Wunused-variable] 16 | static FILE* help_pipe; | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oclist.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocnoiv1.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp: In member function 'virtual void OcFullMatrix::solv(IvocVect*, IvocVect*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp:290:43: warning: comparison of integer expressions of different signedness: 'u_int' {aka 'unsigned int'} and 'int' [-Wsign-compare] 290 | }else if (use_lu && lu_factor_->m == nrow()) { | ~~~~~~~~~~~~~~^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocobserv.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocpicker.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocpointer.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocptrvector.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/octimer.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/rect.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/rubband.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp: In member function 'virtual void Scene::save_class(std::ostream&, const char*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp:870:14: warning: unused variable 'count' [-Wunused-variable] 870 | long count = views_->count(); | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In constructor 'PrintableWindowManager::PrintableWindowManager()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1206:15: warning: variable 'wp1' set but not used [-Wunused-but-set-variable] 1206 | Coord wp1; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1246:38: warning: unused variable 'mother' [-Wunused-variable] 1246 | Menu* mbar, *mprint, *mses, *mother; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PrintableWindowManager::reconfigured(PrintableWindow*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1642:15: warning: unused variable 'r' [-Wunused-variable] 1642 | Coord r = l + w->width_pw(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1644:15: warning: unused variable 't' [-Wunused-variable] 1644 | Coord t = b + w->height_pw(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PrintableWindowManager::reconfigured(JavaWindow*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1672:15: warning: unused variable 'r' [-Wunused-variable] 1672 | Coord r = l + w->w(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1674:15: warning: unused variable 't' [-Wunused-variable] 1674 | Coord t = b + w->h(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PWMImpl::common_print(ivPrinter*, bool, bool)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:2017:23: warning: unused variable 'sfac' [-Wunused-variable] 2017 | float sfac; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'PWMImpl::save_list(int, ScreenItem**, std::basic_ostream >&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:3228:50: warning: 'ocg' may be used uninitialized in this function [-Wmaybe-uninitialized] 3228 | ocg->save(o); | ~~~~~~~~~^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp: In member function 'virtual void SpecView::execute()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:691:14: warning: unused variable 'bx' [-Wunused-variable] 691 | bool bx = var_pair_chooser("X size", x1, x2, v->canvas()->window()); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:692:14: warning: unused variable 'by' [-Wunused-variable] 692 | bool by = var_pair_chooser("Y size", y1, y2, v->canvas()->window()); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp: In member function 'void OcViewGlyph::viewmenu(ivGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:761:28: warning: unused variable 'wk' [-Wunused-variable] 761 | WidgetKit& wk = *WidgetKit::instance(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp: In function 'Object** l_alias_list(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp:169:22: warning: unused variable 'buf' [-Wunused-variable] 169 | char buf[256]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp:167:13: warning: unused variable 'id' [-Wunused-variable] 167 | int id = (*po)->index; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp: In function 'bool str_chooser(const char*, char*, ivWindow*, ivCoord, ivCoord)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp:191:20: warning: unused variable 'l' [-Wunused-variable] 191 | LayoutKit& l = *LayoutKit::instance(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp: In static member function 'static bool Graph::label_chooser(const char*, char*, GLabel*, ivCoord, ivCoord)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp:350:20: warning: unused variable 'l' [-Wunused-variable] 350 | LayoutKit& l = *LayoutKit::instance(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp: In member function 'virtual void SymChooser::reread()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp:265:21: warning: unused variable 'fc' [-Wunused-variable] 265 | SymChooserImpl& fc = *impl_; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp: In member function 'void SymChooserImpl::accept_browser_index(int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp:627:13: warning: unused variable 'sym' [-Wunused-variable] 627 | Symbol* sym = dir->symbol(i); | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp: In member function 'virtual void XYView::transform(ivTransformer&, const ivAllocation&, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:478:26: warning: unused variable 'nx' [-Wunused-variable] 478 | const Allotment& nx = n.x_allotment(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:479:26: warning: unused variable 'ny' [-Wunused-variable] 479 | const Allotment& ny = n.y_allotment(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:480:17: warning: unused variable 'v' [-Wunused-variable] 480 | XYView* v = (XYView*)this; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp: In member function 'virtual void View::transform(ivTransformer&, const ivAllocation&, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:554:15: warning: unused variable 'sy' [-Wunused-variable] 554 | float sy = ay.span()/XYView::height(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/field.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xdep.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In function 'void set_format()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:1835:22: warning: unused variable 'len' [-Wunused-variable] 1835 | static Coord len; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'virtual void HocEditorForItem::val_inc(const ivEvent&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2213:15: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 2213 | if (i == strlen(buf)) { | ~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In constructor 'StepperMenu::StepperMenu()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2394:20: warning: unused variable 'k' [-Wunused-variable] 2394 | WidgetKit& k = *WidgetKit::instance(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'void HocStateButton::button_action()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2855:26: warning: unused variable 't' [-Wunused-variable] 2855 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2861:26: warning: unused variable 't' [-Wunused-variable] 2861 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'void HocStateMenuItem::button_action()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:3006:26: warning: unused variable 't' [-Wunused-variable] 3006 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:3012:26: warning: unused variable 't' [-Wunused-variable] 3012 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:1835:22: warning: 'len' defined but not used [-Wunused-variable] 1835 | static Coord len; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:887:13: warning: 'void saveMenuFile()' defined but not used [-Wunused-function] 887 | static void saveMenuFile() { | ^~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbs.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbs.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbs.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'virtual void BBSImpl::execute(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:290:23: warning: unused variable 's' [-Wunused-variable] 290 | char* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:292:21: warning: unused variable 'i' [-Wunused-variable] 292 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'virtual bool BBSImpl::working(int&, double&, int&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:390:29: warning: unused variable 'wid' [-Wunused-variable] 390 | int wid = upkint(); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:404:7: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized] 404 | printf("working n_=%d: after %d try elapsed %g sec got result for %d id=%d x=%g\n", | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | n_, cnt, time()-t, working_id_, id, x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'BBS::take(char const*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:476:23: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized] 476 | printf("end take |%s| elapsed %g from %g\n", key, time()-t, t); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsdirect.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslocal.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:13, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslocal.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp: In member function 'virtual char* BBSLocal::upkpickle(size_t*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:89:19: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 89 | assert(*n == len); | ~~~^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hocassrt.h:19:28: note: in definition of macro 'assert' 19 | # define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslsrv.cpp: In member function 'void BBSLocalServer::post(const char*, MessageValue*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslsrv.cpp:320:31: warning: variable 'm' set but not used [-Wunused-but-set-variable] 320 | MessageList::iterator m = messages_->insert( | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv2.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsrcli.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbssrv.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 26%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bgpmeminfo.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cachevec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cachevec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/classreg.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/classreg.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/classreg.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodeobj.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodeobj.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'double use_mxb(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:345:19: warning: unused variable 'd' [-Wunused-variable] 345 | NetCvode* d = (NetCvode*)v; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'double cache_efficient(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:358:19: warning: unused variable 'd' [-Wunused-variable] 358 | NetCvode* d = (NetCvode*)v; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'void Cvode::activate_maxstate(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:921:21: warning: unused variable 'i' [-Wunused-variable] 921 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'int Cvode::cvode_init(double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1055:13: warning: unused variable 'iter' [-Wunused-variable] 1055 | int iter; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'int Cvode::daspk_advance_tn()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1334:13: warning: unused variable 'flag' [-Wunused-variable] 1334 | int flag, err; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1335:16: warning: unused variable 'tin' [-Wunused-variable] 1335 | double tin; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* msolve_thread_part2(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1473:13: warning: unused variable 'i' [-Wunused-variable] 1473 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* f_thread_ms_part2(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1569:13: warning: unused variable 'i' [-Wunused-variable] 1569 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* f_thread_ms_part3(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1575:13: warning: unused variable 'i' [-Wunused-variable] 1575 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:689:14: warning: 'void* msetup_thread(NrnThread*)' declared 'static' but never defined [-Wunused-function] 689 | static void* msetup_thread(NrnThread*); | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodestb.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodestb.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp: In function 'void deliver_net_events(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:43:13: warning: unused variable 'i' [-Wunused-variable] 43 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:38:13: warning: 'void check_thresh(NrnThread*)' declared 'static' but never defined [-Wunused-function] 38 | static void check_thresh(NrnThread*); | ^~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvtrset.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'double save_test_bin(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:629:22: warning: unused variable 'ss' [-Wunused-variable] 629 | BBSaveState* ss = (BBSaveState*)v; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:174: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'double restore_test_bin(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:899:61: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 899 | nrn_assert(fread(buf, sizeof(char), global_size, f) == global_size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:920:60: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 920 | nrn_assert(fread(buf, sizeof(char), sz, f) == sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void tqcallback(const TQItem*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1142:33: warning: unused variable 'dl' [-Wunused-variable] 1142 | DEList *dl=0, *dl1=0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1172:42: warning: unused variable 'tt' [-Wunused-variable] 1172 | int srcid, i; double ts, tt; PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::del_pp2de()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1360:17: warning: unused variable 'dl' [-Wunused-variable] 1360 | DEList* dl, *dl1; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'int BBSaveState::counts(int**, int**)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1460:58: warning: unused variable 'base' [-Wunused-variable] 1460 | NrnHashIterateKeyValue(Int2Int, base2spgid, int, base, int, spgid) { | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1460:69: warning: unused variable 'spgid' [-Wunused-variable] 1460 | NrnHashIterateKeyValue(Int2Int, base2spgid, int, base, int, spgid) { | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:90:31: note: in definition of macro 'NrnHashIterateKeyValue' 90 | Value value = (*p__).second; \ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::mech(Prop*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1796:32: warning: unused variable 'd' [-Wunused-variable] 1796 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1798:32: warning: unused variable 'd' [-Wunused-variable] 1798 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1810:40: warning: unused variable 'd' [-Wunused-variable] 1810 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1812:40: warning: unused variable 'd' [-Wunused-variable] 1812 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1818:40: warning: unused variable 'd' [-Wunused-variable] 1818 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1820:40: warning: unused variable 'd' [-Wunused-variable] 1820 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::netrecv_pp(Point_process*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1835:13: warning: unused variable 'type' [-Wunused-variable] 1835 | int type = pp->prop->type; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void scatteritems()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2036:68: warning: unused variable 'gid' [-Wunused-variable] 2036 | NrnHashIterateKeyValue(Int2DblList, src2send, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2070:60: warning: unused variable 'gid' [-Wunused-variable] 2070 | NrnHashIterateKeyValue(Int2DblList, src2send, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2015:16: warning: unused variable 'gid' [-Wunused-variable] 2015 | int i, gid, host; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2016:18: warning: unused variable 'dl' [-Wunused-variable] 2016 | DblList* dl; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void construct_presyn_queue()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2194:48: warning: unused variable 't2' [-Wunused-variable] 2194 | double t2 = dl->item(j); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:13: warning: unused variable 'gid' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:35: warning: unused variable 'ts' [-Wunused-variable] 2161 | int gid, tscnt, i; double tsmake[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' , tt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:39: warning: unused variable 'tt' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void bbss_queuecheck()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2464:70: warning: unused variable 'gid' [-Wunused-variable] 2464 | NrnHashIterateKeyValue(Int2DblList, queuecheck_gid2unc, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1946:13: warning: 'void all2allv_helper(int*, int*, int*, int*)' defined but not used [-Wunused-function] 1946 | static void all2allv_helper(int* scnt, int* sdispl, int* rcnt, int* rdispl) { | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:276:13: warning: 'use_gidcompress_' defined but not used [-Wunused-variable] 276 | static bool use_gidcompress_; | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:275:13: warning: 'use_spikecompress_' defined but not used [-Wunused-variable] 275 | static bool use_spikecompress_; | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:243:12: warning: 'int nrnmpi_int_allmax(int)' defined but not used [-Wunused-function] 243 | static int nrnmpi_int_allmax(int x) { return x; } | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:238:13: warning: 'void nrnmpi_dbl_alltoallv(double*, int*, int*, double*, int*, int*)' defined but not used [-Wunused-function] 238 | static void nrnmpi_dbl_alltoallv(double* s, int* scnt, int* sdispl, double* r, int* rcnt, int* rdispl) { | ^~~~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/datapath.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/datapath.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/datapath.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/datapath.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'PathValue* HocDataPathImpl::found_v(void*, const char*, Symbol*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:265:13: warning: unused variable 'len' [-Wunused-variable] 265 | int len = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'void HocDataPathImpl::search_vectors()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:424:16: warning: unused variable 'cnt' [-Wunused-variable] 424 | int i, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'void HocDataPathImpl::search(Node*, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:483:13: warning: unused variable 'i' [-Wunused-variable] 483 | int i, cnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:483:16: warning: unused variable 'cnt' [-Wunused-variable] 483 | int i, cnt; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cxprop.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'void read_temp1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:86:13: warning: unused variable 'nscan' [-Wunused-variable] 86 | int nscan, maxtype, imech, nmech, type, sz1, sz2, ntget, ith, nth, i, j, cnt, seq; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'void nrn_cache_prop_realloc()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:606:21: warning: unused variable 'j' [-Wunused-variable] 606 | int j, cnt = ml->nodecount; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:585:20: warning: unused variable 'type' [-Wunused-variable] 585 | int i, it, type; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/finithnd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/finithnd.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp: In constructor 'geometry3d_Cylinder::geometry3d_Cylinder(double, double, double, double, double, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:441:52: warning: 'geometry3d_Cylinder::cz' will be initialized after [-Wreorder] 441 | double r, rr, axisx, axisy, axisz, cx, cy, cz, h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:441:19: warning: 'double geometry3d_Cylinder::rr' [-Wreorder] 441 | double r, rr, axisx, axisy, axisz, cx, cy, cz, h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:444:1: warning: when initialized here [-Wreorder] 444 | geometry3d_Cylinder::geometry3d_Cylinder(double x0, double y0, double z0, | ^~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/hocmech.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp: In function 'void make_pointprocess()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp:311:21: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 311 | for (i=0; i < s2->s_varn; ++i) { | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp:252:14: warning: unused variable 'buf' [-Wunused-variable] 252 | char buf[256]; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/glinerec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp: In member function 'void GraphVector::record_install()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp:165:18: warning: unused variable 'gvr' [-Wunused-variable] 165 | GVectorRecord* gvr = new GVectorRecord(this); | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/impedanc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/impedanc.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/kssingle.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp: In member function 'void KSSingle::state(Node*, double*, Datum*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp:246:13: warning: unused variable 'i' [-Wunused-variable] 246 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp: In member function 'void KSSingle::cv_update(Node*, double*, Datum*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp:262:13: warning: unused variable 'i' [-Wunused-variable] 262 | int i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/linmod.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/linmod.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/linmod.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/linmod1.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/linmod1.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h: In constructor 'MatrixMap::MatrixMap(OcMatrix&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:63:18: warning: 'MatrixMap::ptree_' will be initialized after [-Wreorder] 63 | double** ptree_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:62:18: warning: 'double** MatrixMap::pm_' [-Wreorder] 62 | double** pm_; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:10:1: warning: when initialized here [-Wreorder] 10 | MatrixMap::MatrixMap(Matrix& mat) | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h: In constructor 'MatrixMap::MatrixMap(OcMatrix*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:63:18: warning: 'MatrixMap::ptree_' will be initialized after [-Wreorder] 63 | double** ptree_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:62:18: warning: 'double** MatrixMap::pm_' [-Wreorder] 62 | double** pm_; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:14:1: warning: when initialized here [-Wreorder] 14 | MatrixMap::MatrixMap(Matrix* mat) | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp: In member function 'void MatrixMap::alloc(int, int, Node**, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:50:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 50 | for (int k = 0; k < nonzero_i.size(); k++) { | ~~^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:41:13: warning: unused variable 'nrow' [-Wunused-variable] 41 | int nrow = m_.nrow(); | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:42:13: warning: unused variable 'ncol' [-Wunused-variable] 42 | int ncol = m_.ncol(); | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/kschan.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/kschan.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_vres(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:292:17: warning: unused variable 'ks' [-Wunused-variable] 292 | KSChan* ks = (KSChan*)v; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_rseed(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:301:17: warning: unused variable 'ks' [-Wunused-variable] 301 | KSChan* ks = (KSChan*)v; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_pr(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:653:17: warning: unused variable 's' [-Wunused-variable] 653 | Symbol* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:655:16: warning: unused variable 'j' [-Wunused-variable] 655 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In constructor 'KSChan::KSChan(Object*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:874:13: warning: unused variable 'i' [-Wunused-variable] 874 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setname(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:990:46: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 990 | if (!is_point()) for (i=0; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setion(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1202:40: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1202 | for (i=2+io; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1240:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1240 | for (i=1 + io; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::free1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1270:29: warning: deleting object of polymorphic class type 'KSIv' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 1270 | if (iv_relation_) { delete iv_relation_; iv_relation_ = NULL; } | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setcond()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1289:29: warning: deleting object of polymorphic class type 'KSIv' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 1289 | if (iv_relation_) { delete iv_relation_; } | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::settype(KSTransition*, int, const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1443:14: warning: variable 'move' set but not used [-Wunused-but-set-variable] 1443 | bool move = true; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::ion_consist()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2249:18: warning: unused variable 'sec' [-Wunused-variable] 2249 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::state_consist(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2308:18: warning: unused variable 'sec' [-Wunused-variable] 2308 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'virtual void KSChan::cv_sc_update(int, Node**, double**, Datum**, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2910:16: warning: unused variable 'j' [-Wunused-variable] 2910 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2911:17: warning: unused variable 's' [-Wunused-variable] 2911 | double* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::usetable(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:3043:13: warning: unused variable 'i' [-Wunused-variable] 3043 | int i; | ^ In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2: In function 'strncpy', inlined from 'kst_ligand(void*)' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:633:10: /usr/include/bits/string_fortified.h:95:34: warning: 'strncpy' specified bound 20 equals destination size [-Wstringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp: In member function 'bool NrnProperty::more_var()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp:138:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 138 | if (npi_->iterator_ >= npi_->sym_->s_varn) { | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/multisplit.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::multisplit_clear()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:523:29: warning: unused variable 'ms' [-Wunused-variable] 523 | MultiSplit* ms; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::prstruct()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1773:23: warning: unused variable 'nd' [-Wunused-variable] 1773 | Node* nd = ms->nd[0]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::multisplit_nocap_v_part3(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1956:16: warning: unused variable 'j' [-Wunused-variable] 1956 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::matrix_exchange()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2020:16: warning: unused variable 'wt' [-Wunused-variable] 2020 | double wt = nrnmpi_wtime(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::matrix_exchange_nocap()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2227:16: warning: unused variable 'wt' [-Wunused-variable] 2227 | double wt = nrnmpi_wtime(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In destructor 'virtual ReducedTree::~ReducedTree()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2454:13: warning: unused variable 'i' [-Wunused-variable] 2454 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitThread::bksub_backbone(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:19: warning: unused variable 'ip' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:23: warning: unused variable 'ip1' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:28: warning: unused variable 'ip2' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::pmat(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3291:12: warning: unused variable 'ip' [-Wunused-variable] 3291 | int it, i, ip, is; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::pmatf(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3321:12: warning: unused variable 'ip' [-Wunused-variable] 3321 | int it, i, ip, is; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:43:15: warning: 'nrnmpi_splitcell_wait_' defined but not used [-Wunused-variable] 43 | static double nrnmpi_splitcell_wait_; | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'MultiSplitControl::multisplit(Section*, double, int, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:411:38: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized] 411 | hoc_execerror(s, secname(root->sec)); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/netpar.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/netpar.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In member function 'virtual void NetParEvent::deliver(double, NetCvode*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:251:13: warning: unused variable 'seq' [-Wunused-variable] 251 | int seq; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrn_cleanup_presyn(PreSyn*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:964:17: warning: unused variable 'pss' [-Wunused-variable] 964 | PreSyn* pss; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrnmpi_gid_clear(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:980:17: warning: unused variable 'ps' [-Wunused-variable] 980 | PreSyn* ps, *psi; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrn_gidout_iter(PFIO)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1508:17: warning: unused variable 'ps' [-Wunused-variable] 1508 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'size_t nrncore_netpar_bytes()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1529:11: warning: unused variable 'ps' [-Wunused-variable] 1529 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrncore_netpar_cellgroups_helper(nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1580:11: warning: unused variable 'ps' [-Wunused-variable] 1580 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:39:15: warning: 'dt1_' defined but not used [-Wunused-variable] 39 | static double dt1_; // 1/dt | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:38:15: warning: 't_exchange_' defined but not used [-Wunused-variable] 38 | static double t_exchange_; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:32:12: warning: 'n_bgp_interval' defined but not used [-Wunused-variable] 32 | static int n_bgp_interval; | ^~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In constructor 'NonLinImpRep::NonLinImpRep()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:206:16: warning: unused variable 'j' [-Wunused-variable] 206 | int i, j, ieq, cnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:206:19: warning: unused variable 'ieq' [-Wunused-variable] 206 | int i, j, ieq, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'void NonLinImpRep::dsds()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:520:64: warning: unused variable 'nd' [-Wunused-variable] 520 | for (in = 0; in < ml->nodecount; ++in) { Node* nd = ml->nodelist[in]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'void NonLinImpRep::ode(int, Memb_list*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:557:13: warning: unused variable 'i' [-Wunused-variable] 557 | int i, nc; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:557:16: warning: variable 'nc' set but not used [-Wunused-but-set-variable] 557 | int i, nc; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'NonLinImpRep::gapsolve()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:655:22: warning: 'jb' may be used uninitialized in this function [-Wmaybe-uninitialized] 655 | pargap_jacobi_rhs(jb, jx); | ~~~~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:654:22: warning: 'rb' may be used uninitialized in this function [-Wmaybe-uninitialized] 654 | pargap_jacobi_rhs(rb, rx); | ~~~~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:650:20: warning: 'jx1' may be used uninitialized in this function [-Wmaybe-uninitialized] 650 | jx[i] = jx1[i]; | ~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:649:20: warning: 'rx1' may be used uninitialized in this function [-Wmaybe-uninitialized] 649 | rx[i] = rx1[i]; | ~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:650:13: warning: 'jx' may be used uninitialized in this function [-Wmaybe-uninitialized] 650 | jx[i] = jx1[i]; | ~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:649:13: warning: 'rx' may be used uninitialized in this function [-Wmaybe-uninitialized] 649 | rx[i] = rx1[i]; | ~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/netcvode.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In static member function 'static DiscreteEvent* PlayRecordEvent::savestate_read(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:341:24: warning: unused variable 'de' [-Wunused-variable] 341 | DiscreteEvent* de = nil; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::del_cv_memb_list(Cvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1438:13: warning: unused variable 'i' [-Wunused-variable] 1438 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::distribute_dinfo(int*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1500:13: warning: unused variable 'i' [-Wunused-variable] 1500 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'bool NetCvode::init_global()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1800:50: warning: unused variable 'z' [-Wunused-variable] 1800 | CvodeThreadData& z = cv.ctd_[0]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::init_events()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:2802:16: warning: unused variable 'fifodelay' [-Wunused-variable] 2802 | double fifodelay; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In static member function 'static DiscreteEvent* SelfEvent::savestate_read(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3267:45: warning: unused variable 'iml' [-Wunused-variable] 3267 | int ppindex, ncindex, moff, pptype, iml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3269:17: warning: unused variable 'obj' [-Wunused-variable] 3269 | Object* obj; | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'int NetCvode::pgvts_event(double&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3578:13: warning: unused variable 'rank' [-Wunused-variable] 3578 | int rank, op, err, init; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::re_init(double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3913:19: warning: unused variable 'k' [-Wunused-variable] 3913 | int i, j, k, l; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3913:22: warning: unused variable 'l' [-Wunused-variable] 3913 | int i, j, k, l; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCon* NetCvode::install_deliver(double*, Section*, Object*, Object*, double, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4485:13: warning: unused variable 'i' [-Wunused-variable] 4485 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'virtual void WatchCondition::pgvts_deliver(double, NetCvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5400:20: warning: unused variable 'nt' [-Wunused-variable] 5400 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'virtual void STECondition::pgvts_deliver(double, NetCvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5417:20: warning: unused variable 'nt' [-Wunused-variable] 5417 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In function 'void nrnthread_trajectory_values(int, int, void**, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5736:9: warning: unused variable 'i_trajec' [-Wunused-variable] 5736 | int i_trajec = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::deliver_net_events(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5831:20: warning: unused variable 'tt' [-Wunused-variable] 5831 | double tm, tt, tsav; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::vec_remove()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6198:19: warning: unused variable 'iv' [-Wunused-variable] 6198 | IvocVect* iv = vector_arg(1); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::playrec_setup()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6207:17: warning: unused variable 'px' [-Wunused-variable] 6207 | double* px; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'double NetCvode::state_magnitudes()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6378:25: warning: unused variable 'ms' [-Wunused-variable] 6378 | double* ms; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6346:13: warning: unused variable 'i' [-Wunused-variable] 6346 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::maxstate_analyse()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6441:23: warning: unused variable 'n' [-Wunused-variable] 6441 | int i, it, j, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::error_weights()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4236:35: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] 4236 | gcv_->states(vp + j); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::acor()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4265:35: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] 4265 | gcv_->states(vp + j); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::maxstate_analyse()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6460:43: warning: 'msi' may be used uninitialized in this function [-Wmaybe-uninitialized] 6460 | maxstate_analyze_1(it, *gcv_, msi, gcv_->ctd_[it]); | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrndae.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h: In constructor 'NrnDAE::NrnDAE(OcMatrix*, IvocVect*, IvocVect*, int, Node**, IvocVect*, void (*)(void*), void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:186:14: warning: 'NrnDAE::yptmp_' will be initialized after [-Wreorder] 186 | Vect yptmp_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:183:14: warning: 'IvocVect NrnDAE::cyp_' [-Wreorder] 183 | Vect cyp_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:137:1: warning: when initialized here [-Wreorder] 137 | NrnDAE::NrnDAE(Matrix* cmat, Vect* const yvec, Vect* const y0, int nnode, | ^~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:183:14: warning: 'NrnDAE::cyp_' will be initialized after [-Wreorder] 183 | Vect cyp_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:139:12: warning: 'void (* NrnDAE::f_init_)(void*)' [-Wreorder] 139 | void (*f_init_)(void* data); | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:137:1: warning: when initialized here [-Wreorder] 137 | NrnDAE::NrnDAE(Matrix* cmat, Vect* const yvec, Vect* const y0, int nnode, | ^~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndaspk.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndaspk.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp: In member function 'int Daspk::init()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:233:13: warning: unused variable 'i' [-Wunused-variable] 233 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:64:12: warning: 'int msolve(IDAMem, N_Vector, N_Vector, N_Vector, N_Vector)' declared 'static' but never defined [-Wunused-function] 64 | static int msolve(IDAMem mem, N_Vector b, N_Vector ycur, N_Vector ypcur, | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:216:15: warning: 'double check(double, Daspk*)' defined but not used [-Wunused-function] 216 | static double check(double t, Daspk* ida) { | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:111: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnsection_mapping.h: In member function 'CellMapping* NrnMappingInfo::get_cell_mapping(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnsection_mapping.h:119:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 119 | for(int i = 0; i < mapping.size(); i++) { | ~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'size_t part1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:275:22: warning: unused variable 'tml' [-Wunused-variable] 275 | NrnThreadMembList* tml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void datumtransform(nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:730:16: warning: unused variable 'nt' [-Wunused-variable] 730 | NrnThread& nt = nrn_threads[ith]; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/tqueue.h:58, from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/netcvode.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:109: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void write_contiguous_art_data(double**, int, int, FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1081:14: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 1081 | assert(n == szitem); | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_2(int, int*&, double*&, double*&, double*&, double*&, double*&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1257:7: warning: unused variable 'n' [-Wunused-variable] 1257 | int n = nt.end; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_3(int, int, int*&, double*&, int*&, int*&, double*&, double*&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1359:14: warning: unused variable 'nt' [-Wunused-variable] 1359 | NrnThread& nt = nrn_threads[tid]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_corepointer(int, int&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1397:14: warning: unused variable 'nt' [-Wunused-variable] 1397 | NrnThread& nt = nrn_threads[tid]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void write_nrnthread_task(const char*, nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1696:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 1696 | for (int i = 0; i < iRecvVec.size(); ++i) | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int* datum2int(int, Memb_list*, NrnThread&, nrncore_CellGroup&, nrncore_DatumIndices&, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1712:12: warning: unused variable 'd' [-Wunused-variable] 1712 | Datum* d = ml->pdata[i]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void* get_coreneuron_handle()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1952:15: warning: ignoring return value of 'char* getcwd(char*, size_t)' declared with attribute 'warn_unused_result' [-Wunused-result] 1952 | getcwd(pwd, FILENAME_MAX); | ~~~~~~^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1075:13: warning: 'void write_contiguous_art_data(double**, int, int, FILE*)' defined but not used [-Wunused-function] 1075 | static void write_contiguous_art_data(double** data, int nitem, int szitem, FILE* f) { | ^~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DNRNCMAKE -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -DUSE_LIBNRNPYTHON_MAJORMINOR=0 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnpy.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 32%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnrtime.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp: In function 'void mech_menu(Prop*, double, int, const char*, MechSelector*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:291:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 291 | for (j=0; j < sym->s_varn; j++ ) { | ~~^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp: In function 'void point_menu(Object*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:459:47: warning: array subscript has type 'char' [-Wchar-subscripts] 459 | psym = pointsym[pnt_map[pp->prop->type]]; | ~~~~~~~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:476:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 476 | for (k=0; k < psym->s_varn; k++ ) { | ~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:488:44: warning: unused variable 'a' [-Wunused-variable] 488 | Arrayinfo* a = vsym->arayinfo; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 32%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnste.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnste.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c: In function 'N_VNew_NrnSerialLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c:160:21: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] 160 | NV_DATA_S_LD(v) = data; /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c: In function 'N_VClone_NrnSerialLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c:364:21: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] 364 | NV_DATA_S_LD(v) = data; make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c: In function 'N_VNew_NrnThread': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:175:30: warning: unused variable 'content' [-Wunused-variable] 175 | N_VectorContent_NrnThread* content; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c: In function 'N_VWL2Norm_NrnThread': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:701:12: warning: variable 'N' set but not used [-Wunused-but-set-variable] 701 | long int N; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:781:14: warning: 'vminquotient' defined but not used [-Wunused-function] 781 | static void* vminquotient(NrnThread* nt) { | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:366:13: warning: 'pr' defined but not used [-Wunused-function] 366 | static void pr(N_Vector x) { N_VPrint_NrnThread(x); } | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c: In function 'N_VNew_NrnThreadLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:175:32: warning: unused variable 'content' [-Wunused-variable] 175 | N_VectorContent_NrnThreadLD* content; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c: In function 'N_VWL2Norm_NrnThreadLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:700:12: warning: variable 'N' set but not used [-Wunused-but-set-variable] 700 | long int N; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:780:14: warning: 'vminquotient' defined but not used [-Wunused-function] 780 | static void* vminquotient(NrnThread* nt) { | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:365:13: warning: 'pr' defined but not used [-Wunused-function] 365 | static void pr(N_Vector x) { N_VPrint_NrnThreadLD(x); } | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In function 'double multisplit(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:616:13: warning: unused variable 'reducedtree_host' [-Wunused-variable] 616 | int reducedtree_host = 0; | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In function 'double broadcast(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:850:13: warning: unused variable 'srcid' [-Wunused-variable] 850 | int srcid = int(chkarg(2, 0, nrnmpi_numprocs - 1)); | ^~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In member function 'virtual void BBSImpl::return_args(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1304:13: warning: variable 'i' set but not used [-Wunused-but-set-variable] 1304 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1308:13: warning: unused variable 'wid' [-Wunused-variable] 1308 | int wid = upkint(); | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1297, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp: In member function 'BBSImpl::subworld_worker_execute()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp:19:13: warning: 'info' is used uninitialized [-Wuninitialized] 19 | int id = info[0]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp:13:13: note: 'info' declared here 13 | int info[2]; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp:28:36: warning: 'size' may be used uninitialized [-Wmaybe-uninitialized] 28 | char *s = new char[size]; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp:46:30: warning: 'npickle' may be used uninitialized [-Wmaybe-uninitialized] 46 | s = new char[npickle]; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp:64:31: warning: 'argtypes' may be used uninitialized [-Wmaybe-uninitialized] 64 | for (j = argtypes; (i = j%5) != 0; j /= 5) { | ~~~^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp:52:34: warning: 'size' may be used uninitialized [-Wmaybe-uninitialized] 52 | s = new char(size); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp:70:34: warning: 'x' may be used uninitialized [-Wmaybe-uninitialized] 70 | hoc_pushx(x); | ~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp:74:49: warning: 'size' may be used uninitialized [-Wmaybe-uninitialized] 74 | sarg[ns] = new char(size); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp:81:47: warning: 'n' may be used uninitialized [-Wmaybe-uninitialized] 81 | Vect* vec = new Vect(n); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/subworld.cpp:88:38: warning: 'n' may be used uninitialized [-Wmaybe-uninitialized] 88 | s = new char[n]; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/occvode.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/occvode.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/occvode.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/occvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::new_no_cap_memb(CvodeThreadData&, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:277:20: warning: unused variable 'ml' [-Wunused-variable] 277 | Memb_list* ml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::fun_thread_ms_part1(double, double*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:715:26: warning: unused variable 'z' [-Wunused-variable] 715 | CvodeThreadData& z = ctd_[nt->id]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::before_after(BAMechList*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:764:16: warning: unused variable 'j' [-Wunused-variable] 764 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::acor(double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:989:20: warning: unused variable 'nt' [-Wunused-variable] 989 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'Cvode::new_no_cap_memb(CvodeThreadData&, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:298:35: warning: 'ncm' may be used uninitialized in this function [-Wmaybe-uninitialized] 298 | ncm->next = new CvMembList(); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ocjump.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocjump.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ppshape.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ppshape.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp: In function 'void pr_memb(int, Memb_list*, int*, NrnThread&, FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp:30:7: warning: unused variable 'psize' [-Wunused-variable] 30 | int psize = nrn_prop_dparam_size_[type]; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/pysecname2sec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/partrans.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/partrans.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: In function 'void nrn_partrans_update_ptrs()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:373:16: warning: variable 'n' set but not used [-Wunused-but-set-variable] 373 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: In function 'void nrnmpi_setup_transfer()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:701:13: warning: unused variable 'nhost' [-Wunused-variable] 701 | int nhost = nrnmpi_numprocs; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:329:13: warning: 'void check_pointers()' defined but not used [-Wunused-function] 329 | static void check_pointers() { | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:204:44: warning: 'outsrcdspl_' defined but not used [-Wunused-variable] 204 | static int outsrc_buf_size_, *outsrccnt_, *outsrcdspl_; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:204:31: warning: 'outsrccnt_' defined but not used [-Wunused-variable] 204 | static int outsrc_buf_size_, *outsrccnt_, *outsrcdspl_; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:203:42: warning: 'insrcdspl_' defined but not used [-Wunused-variable] 203 | static int insrc_buf_size_, *insrccnt_, *insrcdspl_; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:203:30: warning: 'insrccnt_' defined but not used [-Wunused-variable] 203 | static int insrc_buf_size_, *insrccnt_, *insrcdspl_; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:203:12: warning: 'insrc_buf_size_' defined but not used [-Wunused-variable] 203 | static int insrc_buf_size_, *insrccnt_, *insrcdspl_; | ^~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/rotate3d.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/secbrows.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:8, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:18: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'OcSectionBrowser::OcSectionBrowser(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:131:32: warning: unused variable 'sec' [-Wunused-variable] 131 | ForAllSections(sec) //{ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:314:48: note: in definition of macro 'ForAllSections' 314 | ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'SectionBrowserImpl::SectionBrowserImpl()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:365:24: warning: unused variable 'sec' [-Wunused-variable] 365 | ForAllSections(sec) //{ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:314:48: note: in definition of macro 'ForAllSections' 314 | ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'SectionBrowser::SectionBrowser()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:392:20: warning: unused variable 'lk' [-Wunused-variable] 392 | LayoutKit& lk = *LayoutKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:393:20: warning: unused variable 'wk' [-Wunused-variable] 393 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In static member function 'static void SectionBrowser::make_section_browser()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:440:20: warning: unused variable 'wk' [-Wunused-variable] 440 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In static member function 'static void PointProcessBrowser::make_point_process_browser(OcList*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:500:20: warning: unused variable 'wk' [-Wunused-variable] 500 | WidgetKit& wk = *WidgetKit::instance(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/savstate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/savstate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'virtual void SaveState::read(OcFile*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:735:33: note: in expansion of macro 'ASSERTfread' 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:739:33: note: in expansion of macro 'ASSERTfread' 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:747:33: note: in expansion of macro 'ASSERTfread' 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:751:33: note: in expansion of macro 'ASSERTfread' 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:767:17: note: in expansion of macro 'ASSERTfread' 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'virtual void SaveState::write(OcFile*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:800:33: note: in expansion of macro 'ASSERTfwrite' 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:803:33: note: in expansion of macro 'ASSERTfwrite' 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:810:33: note: in expansion of macro 'ASSERTfwrite' 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:813:33: note: in expansion of macro 'ASSERTfwrite' 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:821:17: note: in expansion of macro 'ASSERTfwrite' 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::readnet(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:939:25: note: in expansion of macro 'ASSERTfread' 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:947:17: note: in expansion of macro 'ASSERTfread' 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:965:17: note: in expansion of macro 'ASSERTfread' 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::writenet(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1010:25: note: in expansion of macro 'ASSERTfwrite' 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1011 | } | ~ 1012 | } | ~ 1013 | fprintf(f, "%d\n", npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1014 | if (npss_) { | ~~~~~~~~~~~~ 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1015:17: note: in expansion of macro 'ASSERTfwrite' 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1011 | } | ~ 1012 | } | ~ 1013 | fprintf(f, "%d\n", npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1014 | if (npss_) { | ~~~~~~~~~~~~ 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1016 | } | ~ 1017 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 1018 | fprintf(f, "%d\n", n); | ~~~~~~~~~~~~~~~~~~~~~~ 1019 | if (n) { | ~~~~~~~~ 1020 | ASSERTfwrite((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1020:17: note: in expansion of macro 'ASSERTfwrite' 1020 | ASSERTfwrite((char*)tqs_->tdeliver, sizeof(double), n, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::allocnet()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1079:16: warning: unused variable 'n' [-Wunused-variable] 1079 | int i, n; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/shape.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/shape.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/singlech.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/singlech.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 36%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/splitcell.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 36%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/symdir.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/symdir.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/symdir.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp: In member function 'ivGlyph* ColorValue::make_glyph()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp:1108:20: warning: unused variable 'wk' [-Wunused-variable] 1108 | WidgetKit& wk = *WidgetKit::instance(); | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:13, from /builddir/build/BUILD/nrn-7.8.1/src/oc/classreg.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp: In member function 'Hinton::request(ivRequisition&) const': /builddir/build/BUILD/nrn-7.8.1/src/oc/hocassrt.h:19:22: warning: 'nonnull' argument 'this' compared to NULL [-Wnonnull-compare] 19 | # define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void OcShape::select_section(Section*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:743:18: warning: unused variable 's' [-Wunused-variable] 743 | Section* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:744:22: warning: unused variable 'c' [-Wunused-variable] 744 | const Color* c; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::observe(SectionList*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:832:23: warning: unused variable 'cnt' [-Wunused-variable] 832 | GlyphIndex i, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::transform3d(Rubberband*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1000:15: warning: unused variable 'x' [-Wunused-variable] 1000 | Coord x, y; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1000:18: warning: unused variable 'y' [-Wunused-variable] 1000 | Coord x, y; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::wholeplot(ivCoord&, ivCoord&, ivCoord&, ivCoord&) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1025:17: warning: unused variable 'j' [-Wunused-variable] 1025 | long i, j, n = sg_->count(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In destructor 'virtual ShapeSection::~ShapeSection()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1294:13: warning: unused variable 'n' [-Wunused-variable] 1294 | int n = sec_->npt3d -1; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::set_range_variable(Symbol*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1514:14: warning: variable 'any' set but not used [-Wunused-but-set-variable] 1514 | bool any = false; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::draw(ivCanvas*, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1554:15: warning: unused variable 'e' [-Wunused-variable] 1554 | float e = 1e-2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::fast_draw(ivCanvas*, ivCoord, ivCoord, bool) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1612:16: warning: variable 'a3dold' set but not used [-Wunused-but-set-variable] 1612 | double a3dold; // the arc length at i3d-1 | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'void ShapeSection::fastidious_draw(ivCanvas*, const ivColor*, int, float, float) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1698:15: warning: unused variable 'len' [-Wunused-variable] 1698 | float len, f1, f2, d, x1, x2, y1, y2, a, aa; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'ShapeSection::fast_draw(ivCanvas*, float, float, bool) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1631:54: warning: 'cv' may be used uninitialized in this function [-Wmaybe-uninitialized] 1631 | color = cv->get_color(*pvar_[iseg]); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'ShapeSection::arc_position(float, float) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:2003:51: warning: 'ic' may be used uninitialized in this function [-Wmaybe-uninitialized] 2003 | len = MyMath::norm2(x_[ic] - x_[ic+1], y_[ic] - y_[ic+1]); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp: In member function 'RangeVarPlot::fill_pointers()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp:531:24: warning: 'sym' may be used uninitialized in this function [-Wmaybe-uninitialized] 531 | does_exist = nrn_exists(sym, node_exact(sec, hoc_ac_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/symdir.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp: In constructor 'SymDirectory::SymDirectory(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp:172:13: warning: unused variable 'suffix' [-Wunused-variable] 172 | int suffix = '.'; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp: In member function 'void SymDirectoryImpl::load_section()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp:549:13: warning: unused variable 'n' [-Wunused-variable] 549 | int n = sec->nnode; | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 36%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/tqueue.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp:391, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:133, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c: In function 'TQItem* sptq_spenq(TQItem*, SPTREE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c:104:18: warning: unused variable 'Sct' [-Wunused-variable] 104 | register int Sct; /* Strcmp value */ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c: In function 'TQItem* sptq_spenqprior(TQItem*, SPTREE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c:329:18: warning: unused variable 'Sct' [-Wunused-variable] 329 | register int Sct; /* Strcmp value */ | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:133, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp:56:13: warning: 'void chk(TQItem*, int)' defined but not used [-Wunused-function] 56 | static void chk(TQItem* b, int level) { | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 36%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/vrecord.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/vrecord.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/capac.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c: In function 'activclamp_lhs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c:180:16: warning: unused variable 'v' [-Wunused-variable] 180 | double v; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'nrn_rootnode_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:1654:18: warning: unused variable 'nde' [-Wunused-variable] 1654 | Extnode* nde; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'ismembrane': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:2254:15: warning: unused variable 'p' [-Wunused-variable] 2254 | Prop *p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'section_exists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:2466:21: warning: unused variable 'cp' [-Wunused-variable] 2466 | char *str, *cp, buf[100]; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:25:28: warning: missing braces around initializer [-Wmissing-braces] 25 | static DoubScal scdoub[] = { /* just a template*/ | ^ 26 | "ci0_na_ion", 0, | { } 27 | "co0_na_ion", 0, | { } 28 | 0, 0 | { 29 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'ion_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:521:16: warning: unused variable 'vnode' [-Wunused-variable] 521 | Node** vnode = ml->nodelist; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'ion_init': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:543:16: warning: unused variable 'vnode' [-Wunused-variable] 543 | Node** vnode = ml->nodelist; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'second_order_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:605:13: warning: unused variable 'j' [-Wunused-variable] 605 | int j, i, i2; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_pop_defer': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:237:17: warning: unused variable 'obj' [-Wunused-variable] 237 | Object* obj; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'frameobj_clean': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:273:16: warning: unused variable 'narg' [-Wunused-variable] 273 | int i, narg; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_Argtype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1509:13: warning: unused variable 'narg' [-Wunused-variable] 1509 | int narg, iarg, type, itype=0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_autoobject': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1760:18: warning: unused variable 'obp' [-Wunused-variable] 1760 | Object **obp; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1758:13: warning: unused variable 'i' [-Wunused-variable] 1758 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_delete_symbol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:2507:14: warning: unused variable 'sp' [-Wunused-variable] 2507 | * sp; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:26:33: warning: missing braces around initializer [-Wmissing-braces] 26 | static HocParmLimits limits[] = { | ^ 27 | "xraxial", 1e-9, 1e15, | { { }} 28 | "xg", 0., 1e15, | { { }} 29 | "xc", 0., 1e15, | { { }} 30 | 0,0.,0. | { { 31 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:33:31: warning: missing braces around initializer [-Wmissing-braces] 33 | static HocParmUnits units[] = { | ^ 34 | "xraxial", "MOhm/cm", | { } 35 | "xg", "S/cm2", | { } 36 | "xc", "uF/cm2", | { } 37 | "e_extracellular", "mV", | { } 38 | "vext", "mV", | { } 39 | "i_membrane", "mA/cm2", | { } 40 | 0,0 | { 41 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'nrn_update_2d': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:94:16: warning: variable 'cfac' set but not used [-Wunused-but-set-variable] 94 | double cfac; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:90:20: warning: unused variable 'secondorder' [-Wunused-variable] 90 | extern int secondorder; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'extcell_node_create': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:197:13: warning: unused variable 'i' [-Wunused-variable] 197 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'extcell_2d_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:240:15: warning: unused variable 'p' [-Wunused-variable] 240 | Prop* p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:239:18: warning: unused variable 'nde' [-Wunused-variable] 239 | Extnode *nde; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:238:15: warning: unused variable 'nd' [-Wunused-variable] 238 | Node *nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:237:16: warning: unused variable 'j' [-Wunused-variable] 237 | int i, j; | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fstim.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c: In function 'fit_praxis': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c:101:32: warning: variable 'nvarsav' set but not used [-Wunused-but-set-variable] 101 | long int printmodesav, nvarsav; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c: In function 'efun': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c:279:13: warning: unused variable 'i' [-Wunused-variable] 279 | int i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_daspk_init_step': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:284:13: warning: unused variable 'i' [-Wunused-variable] 284 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_fixed_step': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:301:13: warning: unused variable 'i' [-Wunused-variable] 301 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'fcurrent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:607:13: warning: unused variable 'i' [-Wunused-variable] 607 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_ba': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:1015:21: warning: unused variable 'type' [-Wunused-variable] 1015 | int type = tbl->bam->type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_finitialize': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:783:9: warning: '_nt' is used uninitialized [-Wuninitialized] 783 | nrn_random_play(_nt); | ^~~~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocusr.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hocusr.c:9, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocusr.c:6: /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc/hocusr.h:32:30: warning: missing braces around initializer [-Wmissing-braces] 32 | static VoidFunc function[] = { | ^ 33 | 34 | "node_data", node_data, | { } 35 | "disconnect", disconnect, | { } 36 | "batch_run", batch_run, | { } 37 | "batch_save", batch_save, | { } 38 | "pt3dclear", pt3dclear, | { } 39 | "pt3dadd", pt3dadd, | { } 40 | "n3d", n3d, | { } 41 | "x3d", x3d, | { } 42 | "y3d", y3d, | { } 43 | "z3d", z3d, | { } 44 | "arc3d", arc3d, | { } 45 | "diam3d", diam3d, | { } 46 | "pt3dinsert", pt3dinsert, | { } 47 | "pt3dremove", pt3dremove, | { } 48 | "pt3dchange", pt3dchange, | { } 49 | "define_shape", define_shape, | { } 50 | "pt3dconst", pt3dconst, | { } 51 | "pt3dstyle", pt3dstyle, | { } 52 | "spine3d", spine3d, | { } 53 | "setSpineArea", setSpineArea, | { } 54 | "getSpineArea", getSpineArea, | { } 55 | "area", area, | { } 56 | "ri", ri, | { } 57 | "initnrn", initnrn, | { } 58 | "topology", nrnhoc_topology, | { } 59 | "fadvance", fadvance, | { } 60 | "distance", distance, | { } 61 | "finitialize", finitialize, | { } 62 | "fstim", fstim, | { } 63 | "fstimi", fstimi, | { } 64 | "ion_style", ion_style, | { } 65 | "ion_register", ion_register, | { } 66 | "ion_charge", ion_charge, | { } 67 | "nernst", nernst, | { } 68 | "ghk", ghk, | { } 69 | "section_owner", section_owner, | { } 70 | "make_mechanism", make_mechanism, | { } 71 | "make_pointprocess", make_pointprocess, | { } 72 | "nrnpython", nrnpython, | { } 73 | "fsyn", fsyn, | { } 74 | "fsyng", fsyng, | { } 75 | "fsyni", fsyni, | { } 76 | "fclamp", fclamp, | { } 77 | "fclampi", fclampi, | { } 78 | "fclampv", fclampv, | { } 79 | "prstim", prstim, | { } 80 | "fcurrent", fcurrent, | { } 81 | "fmatrix", fmatrix, | { } 82 | "frecord_init", frecord_init, | { } 83 | "issection", issection, | { } 84 | "ismembrane", ismembrane, | { } 85 | "sectionname", sectionname, | { } 86 | "psection", psection, | { } 87 | "pop_section", pop_section, | { } 88 | "push_section", push_section, | { } 89 | "section_exists", section_exists, | { } 90 | "delete_section", delete_section, | { } 91 | "fit_praxis", fit_praxis, | { } 92 | "attr_praxis", attr_praxis, | { } 93 | "pval_praxis", pval_praxis, | { } 94 | "stop_praxis", stop_praxis, | { } 95 | "keep_nseg_parm", keep_nseg_parm, | { } 96 | "nrnallsectionmenu", nrnallsectionmenu, | { } 97 | "nrnallpointmenu", nrnallpointmenu, | { } 98 | "nrnsecmenu", nrnsecmenu, | { } 99 | "nrnglobalmechmenu", nrnglobalmechmenu, | { } 100 | "nrnmechmenu", nrnmechmenu, | { } 101 | "nrnpointmenu", nrnpointmenu, | { } 102 | "this_section", this_section, | { } 103 | "this_node", this_node, | { } 104 | "parent_section", parent_section, | { } 105 | "parent_node", parent_node, | { } 106 | "parent_connection", parent_connection, | { } 107 | "section_orientation", section_orientation, | { } 108 | 0, 0 | { 109 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc/hocusr.h:114:13: warning: missing braces around initializer [-Wmissing-braces] 114 | } scint[] = { | ^ 115 | 116 | "secondorder", &secondorder, | { } 117 | "diam_changed", &diam_changed, | { } 118 | "nrn_shape_changed_", &nrn_shape_changed_, | { } 119 | "nrn_netrec_state_adjust", &nrn_netrec_state_adjust, | { } 120 | "nrn_sparse_partrans", &nrn_sparse_partrans, | { } 121 | "stoprun", &stoprun, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc/hocusr.h:129:12: warning: missing braces around initializer [-Wmissing-braces] 129 | } vint[] = { | ^ 130 | 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc/hocusr.h:137:15: warning: missing braces around initializer [-Wmissing-braces] 137 | } scfloat[] = { | ^ 138 | 139 | 0, 0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc/hocusr.h:146:14: warning: missing braces around initializer [-Wmissing-braces] 146 | } vfloat[] = { | ^ 147 | 148 | 0,0,0 | { 149 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc/hocusr.h:152:21: warning: missing braces around initializer [-Wmissing-braces] 152 | DoubScal scdoub[] = { | ^ 153 | 154 | "clamp_resist", &clamp_resist, | { } 155 | "celsius", &celsius, | { } 156 | 0,0 | { 157 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc/hocusr.h:160:19: warning: missing braces around initializer [-Wmissing-braces] 160 | DoubVec vdoub[] = { | ^ 161 | 162 | 0, 0, 0 | { 163 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc/hocusr.h:170:14: warning: missing braces around initializer [-Wmissing-braces] 170 | } ardoub[] = { | ^ 171 | 172 | 0, 0, 0, 0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc/hocusr.h:181:15: warning: missing braces around initializer [-Wmissing-braces] 181 | } thredim[] = { | ^ 182 | 183 | 0, 0, 0, 0, 0 | { 184 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_init.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_init.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:34:16: warning: missing braces around initializer [-Wmissing-braces] 34 | } keywords[] = { | ^ 35 | "proc", parsePROC, | { } 36 | "func", FUNC, | { } 37 | "obfunc", HOCOBJFUNC, | { } 38 | "return", RETURN, | { } 39 | "break", BREAK, | { } 40 | "continue", CONTINUE, | { } 41 | "stop", STOPSTMT, | { } 42 | "if", IF, | { } 43 | "else", ELSE, | { } 44 | "while", WHILE, | { } 45 | "for", FOR, | { } 46 | "print", PRINT, | { } 47 | "delete", parseDELETE, | { } 48 | "read", READ, | { } 49 | "debug", DEBUG, | { } 50 | "double", parseDOUBLE, | { } 51 | "em", EDIT, | { } 52 | "depvar", DEPENDENT, | { } 53 | "eqn", EQUATION, | { } 54 | "local", LOCAL, | { } 55 | "localobj", LOCALOBJ, | { } 56 | "strdef", STRDEF, | { } 57 | "parallel", PARALLEL, | { } 58 | "help", HELP, | { } 59 | "iterator", ITERKEYWORD, | { } 60 | "iterator_statement", ITERSTMT, | { } 61 | #if CABLE 62 | "create", SECTIONKEYWORD, | { } 63 | "connect", CONNECTKEYWORD, | { } 64 | "setpointer", SETPOINTERKEYWORD, | { } 65 | "access", ACCESSKEYWORD, | { } 66 | "insert", INSERTKEYWORD, | { } 67 | "uninsert", UNINSERTKEYWORD, | { } 68 | "forall", FORALL, | { } 69 | "ifsec", IFSEC, | { } 70 | "forsec", FORSEC, | { } ...... 73 | "begintemplate", BEGINTEMPLATE, | { } 74 | "endtemplate", ENDTEMPLATE, | { } 75 | "objectvar", OBJVARDECL, | { } 76 | "objref", OBJVARDECL, | { } 77 | "public", PUBLICDECL, | { } 78 | "external", EXTERNALDECL, | { } 79 | "new", NEW, | { } 80 | #endif 81 | 0, 0 | { 82 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:86:14: warning: missing braces around initializer [-Wmissing-braces] 86 | } consts[] = { | ^ 87 | "PI", 3.14159265358979323846, | { } 88 | "E", 2.71828182845904523536, | { } 89 | "GAMMA",0.57721566490153286060, /* Euler */ | { } 90 | "DEG", 57.29577951308232087680, /* deg/radian */ | { } 91 | "PHI", 1.61803398874989484820, /* golden ratio */ | { } 92 | #if defined(LegacyFR) && LegacyFR == 1 93 | "FARADAY", 96485.309, /*coulombs/mole*/ | { } 94 | "R", 8.31441, /*molar gas constant, joules/mole/deg-K*/ | { } ...... 101 | 0, 0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:107:16: warning: missing braces around initializer [-Wmissing-braces] 107 | } builtins[] = { | ^ 108 | "sin", sin, | { } 109 | "cos", cos, | { } 110 | "atan", atan, | { } 111 | "tanh", tanh, | { } 112 | "log", Log, /* checks argument */ | { } 113 | "log10",Log10, /* checks argument */ | { } 114 | "exp", hoc1_Exp, /* checks argument */ | { } 115 | "sqrt", Sqrt, /* checks argument */ | { } 116 | "int", integer, | { } ...... 122 | "abs", fabs, | { } 123 | "erf", erf, | { } 124 | "erfc", erfc, | { } 125 | #endif 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:131:17: warning: missing braces around initializer [-Wmissing-braces] 131 | } fun_bltin[] = { | ^ 132 | "atan2", hoc_atan2, | { } 133 | "system", hoc_System, | { } 134 | "prmat", hoc_Prmat, | { } 135 | "solve", hoc_solve, | { } 136 | "eqinit", hoc_eqinit, | { } 137 | "plt", hoc_Plt, | { } 138 | "axis", hoc_axis, | { } 139 | "plot", hoc_Plot, | { } 140 | "plotx", hoc_plotx, | { } 141 | "ploty", hoc_ploty, | { } 142 | "regraph", hoc_regraph, | { } 143 | "symbols", hoc_symbols, | { } 144 | "printf", hoc_PRintf, | { } 145 | "xred", hoc_Xred, | { } 146 | "sred", hoc_Sred, | { } 147 | "ropen", hoc_ropen, | { } 148 | "wopen", hoc_wopen, | { } 149 | "xopen", hoc_xopen, | { } 150 | "hoc_stdout", hoc_stdout, | { } 151 | "chdir", hoc_Chdir, | { } 152 | "fprint", hoc_Fprint, | { } 153 | "fscan", hoc_Fscan, | { } 154 | "sscanf", hoc_sscanf, | { } 155 | "sprint", hoc_Sprint, | { } 156 | "graph", hoc_Graph, | { } 157 | "graphmode", hoc_Graphmode, | { } 158 | "fmenu", hoc_fmenu, | { } 159 | "lw", hoc_Lw, | { } 160 | "getstr", hoc_Getstr, | { } 161 | "strcmp", hoc_Strcmp, | { } 162 | "setcolor", hoc_Setcolor, | { } 163 | "startsw", hoc_startsw, | { } 164 | "stopsw", hoc_stopsw, | { } 165 | "object_id", hoc_object_id, | { } 166 | "allobjectvars", hoc_allobjectvars, | { } 167 | "allobjects", hoc_allobjects, | { } 168 | "xpanel", hoc_xpanel, | { } 169 | "xbutton", hoc_xbutton, | { } 170 | "xcheckbox", hoc_xcheckbox, | { } 171 | "xstatebutton", hoc_xstatebutton, | { } 172 | "xlabel", hoc_xlabel, | { } 173 | "xmenu", hoc_xmenu, | { } 174 | "xvalue", hoc_xvalue, | { } 175 | "xpvalue", hoc_xpvalue, | { } 176 | "xradiobutton", hoc_xradiobutton, | { } 177 | "xfixedvalue", hoc_xfixedvalue, | { } 178 | "xvarlabel", hoc_xvarlabel, | { } 179 | "xslider", hoc_xslider, | { } 180 | "boolean_dialog", hoc_boolean_dialog, | { } 181 | "continue_dialog", hoc_continue_dialog, | { } 182 | "string_dialog", hoc_string_dialog, | { } 183 | "doEvents", hoc_single_event_run, | { } 184 | "doNotify", hoc_notify_iv, | { } 185 | "nrniv_bind_thread", nrniv_bind_thread, | { } 186 | "ivoc_style", ivoc_style, | { } 187 | "numarg", hoc_Numarg, | { } 188 | "argtype", hoc_Argtype, | { } 189 | "hoc_pointer_", hoc_pointer, /* for internal use */ | { } 190 | "nrn_mallinfo", hoc_mallinfo, | { } 191 | "execute", hoc_exec_cmd, | { } 192 | "execute1", hoc_execute1, | { } 193 | "load_proc", hoc_load_proc, | { } 194 | "load_func", hoc_load_func, | { } 195 | "load_template", hoc_load_template, | { } 196 | "load_file", hoc_load_file, | { } 197 | "load_java", hoc_load_java, | { } 198 | "unix_mac_pc", hoc_unix_mac_pc, | { } 199 | "show_winio", hoc_show_winio, | { } 200 | "nrn_load_dll", hoc_nrn_load_dll, | { } 201 | "machine_name", hoc_machine_name, | { } 202 | "saveaudit", hoc_Saveaudit, | { } 203 | "retrieveaudit", hoc_Retrieveaudit, | { } 204 | "coredump_on_error", hoc_coredump_on_error, | { } 205 | "checkpoint", hoc_checkpoint, | { } 206 | "quit", hoc_quit, | { } 207 | "object_push", hoc_object_push, | { } 208 | "object_pop", hoc_object_pop, | { } 209 | "pwman_place", hoc_pwman_place, | { } 210 | "save_session", hoc_save_session, | { } 211 | "print_session", hoc_print_session, | { } 212 | "show_errmess_always", hoc_show_errmess_always, | { } 213 | "execerror", hoc_Execerror, | { } 214 | "variable_domain", hoc_Symbol_limits, | { } 215 | "name_declared", hoc_name_declared, | { } 216 | "use_mcell_ran4", hoc_usemcran4, | { } 217 | "mcell_ran4", hoc_mcran4, | { } 218 | "mcell_ran4_init", hoc_mcran4init, | { } 219 | "nrn_feenableexcept", nrn_feenableexcept, | { } 220 | "nrnmpi_init", hoc_nrnmpi_init, | { } ...... 232 | 0, 0 | { 233 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:238:20: warning: missing braces around initializer [-Wmissing-braces] 238 | } strfun_bltin[] = { | ^ 239 | "secname", hoc_secname, | { } 240 | "units", hoc_Symbol_units, | { } 241 | "neuronhome", hoc_neuronhome, | { } 242 | "getcwd", hoc_getcwd, | { } 243 | "nrnversion", hoc_nrnversion, | { } 244 | 0, 0 | { 245 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:250:20: warning: missing braces around initializer [-Wmissing-braces] 250 | } objfun_bltin[] = { | ^ 251 | "object_pushed", hoc_object_pushed, | { } 252 | 0, 0 | { 253 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c: In function 'hoc_show_winio': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:355:9: warning: variable 'b' set but not used [-Wunused-but-set-variable] 355 | int b; | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:22: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabvars.h:8:15: warning: missing braces around initializer [-Wmissing-braces] 8 | } usrprop[] = { | ^ 9 | "nseg", 0, 0, | { } 10 | "L", 1, 2, | { } 11 | "rallbranch", 1, 4, | { } 12 | "Ra", 1, 7, | { } 13 | 0, 0, 0 | { 14 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:109:43: warning: missing braces around initializer [-Wmissing-braces] 109 | static HocParmLimits _hoc_parm_limits[] = { | ^ 110 | "Ra", 1e-6, 1e9, | { { }} 111 | "L", 1e-4, 1e20, | { { }} 112 | "diam", 1e-9, 1e9, | { { }} 113 | "cm", 0., 1e9, | { { }} 114 | "rallbranch", 1., 1e9, | { { }} 115 | "nseg", 1., 1e9, | { { }} 116 | "celsius", -273., 1e6, | { { }} 117 | "dt", 1e-9, 1e15, | { { }} 118 | 0, 0., 0. | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:121:41: warning: missing braces around initializer [-Wmissing-braces] 121 | static HocParmUnits _hoc_parm_units[] = { | ^ 122 | "Ra", "ohm-cm", | { } 123 | "L", "um", | { } 124 | "diam", "um", | { } 125 | "cm", "uF/cm2", | { } 126 | "celsius", "degC", | { } 127 | "dt", "ms", | { } 128 | "t", "ms", | { } 129 | "v", "mV", | { } 130 | "i_cap", "mA/cm2", | { } 131 | 0, 0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:287:28: warning: missing braces around initializer [-Wmissing-braces] 287 | static DoubScal scdoub[] = { | ^ 288 | "t", &t, | { } 289 | "dt", &dt, | { } 290 | 0,0 | { 291 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_newobj': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:612:25: warning: unused variable 'o' [-Wunused-variable] 612 | Object* o = hoc_obj_look_inside_stack(narg); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:594:16: warning: unused variable 'total' [-Wunused-variable] 594 | int i, total; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:594:13: warning: unused variable 'i' [-Wunused-variable] 594 | int i, total; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:593:23: warning: unused variable 's' [-Wunused-variable] 593 | Symbol *sym, *s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:592:21: warning: unused variable 'obd' [-Wunused-variable] 592 | Objectdata *obd; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_cmp_otype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:804:13: warning: variable 'type' set but not used [-Wunused-but-set-variable] 804 | int type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_known_type': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:809:13: warning: variable 'type' set but not used [-Wunused-but-set-variable] 809 | int type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_name2obj': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:881:14: warning: unused variable 'buf' [-Wunused-variable] 881 | char buf[200]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_ob_pointer': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1275:17: warning: unused variable 'sym' [-Wunused-variable] 1275 | Symbol* sym; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'java2nrn_class': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1563:48: warning: unused variable 'buf' [-Wunused-variable] 1563 | char mname[256], signature[256], *cn, *buf; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1676:56: warning: '%s' directive writing up to 255 bytes into a region of size between 253 and 255 [-Wformat-overflow=] 1676 | sprintf(mname + strlen(mname), "%ld%s", | ^~~~~~~ 1677 | strlen(signature), signature); | ~~~~~~~~~ In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/oc/classreg.h:3, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:3, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c:6: /usr/include/bits/stdio2.h:38:10: note: '__sprintf_chk' output between 2 and 259 bytes into a destination of size 256 38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/method3.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'longdifus_diamchange': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:46: warning: variable 'vnodecount' set but not used [-Wunused-but-set-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:31: warning: unused variable 'index' [-Wunused-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:28: warning: unused variable 'j' [-Wunused-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'longdifusalloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:192:19: warning: unused variable 'qsec' [-Wunused-variable] 192 | hoc_Item* qsec; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:191:15: warning: unused variable 'nd' [-Wunused-variable] 191 | Node* nd, *pnd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:31: warning: unused variable 'index' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:23: warning: unused variable 'mpi' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:19: warning: unused variable 'mi' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'stagger': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:369:21: warning: unused variable 'mi' [-Wunused-variable] 369 | int mi = pld->mindex[i]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:329:31: warning: unused variable 'dx' [-Wunused-variable] 329 | double dc, vol, dfdi, dx; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:329:20: warning: unused variable 'vol' [-Wunused-variable] 329 | double dc, vol, dfdi, dx; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:328:19: warning: variable 'di' set but not used [-Wunused-but-set-variable] 328 | int i, n, di; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'ode': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:401:20: warning: unused variable 'vol' [-Wunused-variable] 401 | double dc, vol, dfdi; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:459:20: warning: unused variable 'vol' [-Wunused-variable] 459 | double dc, vol, dfdi; | ^~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrntimeout.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnnemo.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c: In function 'nrn_version': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:54:12: warning: unused variable 'size' [-Wunused-variable] 54 | int j, size; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:29:7: warning: unused variable 'b' [-Wunused-variable] 29 | int b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:28:9: warning: unused variable 'cp' [-Wunused-variable] 28 | char *cp; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c: In function 'pas_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c:31:17: warning: unused variable 'vpdata' [-Wunused-variable] 31 | Datum **vpdata = ml->pdata; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c: In function 'pas_jacob': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c:45:17: warning: unused variable 'vpdata' [-Wunused-variable] 45 | Datum **vpdata = ml->pdata; | ^~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/psection.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/point.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c: In function 'wholetree': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:31: warning: unused variable 'last' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:23: warning: unused variable 'first' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:19: warning: unused variable 'j' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:15: warning: unused variable 'i' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:123:28: warning: unused variable 'ch' [-Wunused-variable] 123 | Section* s, *sec, *ch; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:254:32: warning: missing braces around initializer [-Wmissing-braces] 254 | static Member_func members[] = { | ^ 255 | "append", append, | { } 256 | "remove", seclist_remove, | { } 257 | "wholetree", wholetree, | { } 258 | "subtree", subtree, | { } 259 | "children", children, | { } 260 | "unique", unique, | { } 261 | "printnames", printnames, | { } 262 | "contains", contains, | { } 263 | "allroots", allroots, | { } 264 | 0,0 | { 265 | }; | } make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_rename': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:81:24: warning: unused variable 'hoc_thisobject' [-Wunused-variable] 81 | extern Object* hoc_thisobject, **hoc_objgetarg(); | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_nchild': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:230:13: warning: unused variable 'n' [-Wunused-variable] 230 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_has_parent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:236:13: warning: unused variable 'n' [-Wunused-variable] 236 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_has_trueparent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:246:13: warning: unused variable 'n' [-Wunused-variable] 246 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_exists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:256:13: warning: unused variable 'n' [-Wunused-variable] 256 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:275:32: warning: missing braces around initializer [-Wmissing-braces] 275 | static Member_func members[] = { | ^ 276 | "sec", s_rename, /* will actually become a SECTIONREF below */ | { } 277 | "parent", s_rename, | { } 278 | "trueparent", s_rename, | { } 279 | "root", s_rename, | { } 280 | "child", s_rename, | { } 281 | "nchild", s_nchild, | { } 282 | "has_parent", s_has_parent, | { } 283 | "has_trueparent", s_has_trueparent, | { } 284 | "exists", s_exists, | { } 285 | "rename", s_rename, | { } 286 | "unname", s_unname, | { } 287 | "is_cas", s_cas, | { } 288 | 0, 0 | { 289 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/synapse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'node_destruct': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:648:15: warning: unused variable 'nd' [-Wunused-variable] 648 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'node_realloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:724:29: warning: unused variable 'i' [-Wunused-variable] 724 | int n1, n2, i1, i2, i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:710:14: warning: 'node_interp' defined but not used [-Wunused-function] 710 | static Node* node_interp(Node* nd1, Node* nd2, double frac) | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'distance': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:271:21: warning: 'my_origin_node' may be used uninitialized in this function [-Wmaybe-uninitialized] 271 | d = topol_distance(my_origin_sec, my_origin_node, sec, node, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | &sec, &node ); | ~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/isaac64.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c: In function 'nrnRan4dbl': /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c:163:23: warning: unused variable 'extra' [-Wunused-variable] 163 | uint32_t hi, lo, extra; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c:163:19: warning: unused variable 'lo' [-Wunused-variable] 163 | uint32_t hi, lo, extra; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnisaac.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c: In function 'nrnran123_ipick': /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c:75:28: warning: array subscript has type 'char' [-Wchar-subscripts] 75 | rval = s->r.v[which++]; | ~~~~~^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:2: In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '*fgets' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^~~ In file included from /usr/include/features.h:473, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdio.h:27, from /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:2: /usr/include/bits/stdio2.h:251:14: note: in a call to function '*fgets' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_lhs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:481:24: warning: variable 'neqn' set but not used [-Wunused-but-set-variable] 481 | int i, neqn; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:481:21: warning: unused variable 'i' [-Wunused-variable] 481 | int i, neqn; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'connection_coef': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:816:15: warning: unused variable 'p' [-Wunused-variable] 816 | Prop *p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:32: warning: unused variable 'ra' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:20: warning: unused variable 'diam' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:16: warning: unused variable 'dx' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'pt3dinsert': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1118:13: warning: unused variable 'i' [-Wunused-variable] 1118 | int i, n, i0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'pt3dremove': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1169:13: warning: unused variable 'i' [-Wunused-variable] 1169 | int i, i0, n; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'setaffinity': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:288:13: warning: unused variable 'mask' [-Wunused-variable] 288 | int mask; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'reorder_secorder': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:879:26: warning: unused variable 'i' [-Wunused-variable] 879 | int order, isec, i, j, inode; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'nrn_how_many_processors': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:1288:13: warning: unused variable 'i' [-Wunused-variable] 1288 | int i, ip; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'v_setup_vectors': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1605:15: warning: unused variable 'nd' [-Wunused-variable] 1605 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1604:18: warning: unused variable 'sec' [-Wunused-variable] 1604 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1603:13: warning: unused variable 'isec' [-Wunused-variable] 1603 | int isec; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_modeltype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1914:26: warning: unused variable 'lm' [-Wunused-variable] 1914 | static Template* lm = (Template*)0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_matrix_node_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1979:15: warning: unused variable 'nd' [-Wunused-variable] 1979 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1978:16: warning: unused variable 'b' [-Wunused-variable] 1978 | int i, b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_recalc_node_ptrs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:2204:24: warning: unused variable 'd' [-Wunused-variable] 2204 | Datum* d; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1914:26: warning: 'lm' defined but not used [-Wunused-variable] 1914 | static Template* lm = (Template*)0; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:268:13: warning: 'wait_for_workers_timeit' defined but not used [-Wunused-function] 268 | static void wait_for_workers_timeit() { | ^~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/bksub.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/axis.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/cygwinprt.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/code2.c /builddir/build/BUILD/nrn-7.8.1/src/oc/code2.c:516:16: warning: missing braces around initializer [-Wmissing-braces] 516 | } type_sym[] = { | ^ 517 | "Builtins", BLTIN, | { } 518 | "Other Builtins", FUN_BLTIN, | { } 519 | "Functions", FUNCTION, | { } 520 | "Procedures", PROCEDURE, | { } 521 | "Undefined", UNDEF, | { } 522 | "Scalars", VAR, | { } 523 | 0, 0 | { 524 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/debug.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/fmenu.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c: In function 'hoc_stdout': /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:78:21: warning: unused variable 'i' [-Wunused-variable] 78 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c: In function 'hoc_Load_file': /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:727:29: warning: unused variable 'i' [-Wunused-variable] 727 | int i; | ^ In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:15, from /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:8: In function 'strncpy', inlined from 'hoc_Load_file' at /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:704:2: /usr/include/bits/string_fortified.h:95:10: warning: 'strncpy' specified bound 1024 equals destination size [-Wstringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ftime.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/functabl.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/getelm.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/getsym.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/hocedit.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/isoc99.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/lineq.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/list.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'hoc_oc': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:1414:15: warning: unused variable 'cp' [-Wunused-variable] 1414 | char *cp; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'hoc_get_line': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:1850:44: warning: unused variable 'hoc_notify_stop' [-Wunused-variable] 1850 | extern int hoc_notify_stop; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'matherr1': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:75:1: warning: control reaches end of non-void function [-Wreturn-type] 75 | } | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/math.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c: In function 'hoc_errno_check': /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c:118:13: warning: unused variable 'ierr' [-Wunused-variable] 118 | int ierr; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnfilewrap.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nonlin.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ocerf.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/parallel.c /builddir/build/BUILD/nrn-7.8.1/src/oc/parallel.c:26:14: warning: 'parallel_envp' defined but not used [-Wunused-variable] 26 | static char *parallel_envp; | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/plot.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/plt.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/prmat.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c: In function 'advance': /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:383:41: warning: array subscript has type 'char' [-Wchar-subscripts] 383 | start = int_range_start[*ep]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:384:39: warning: array subscript has type 'char' [-Wchar-subscripts] 384 | stop = int_range_stop[*ep++]; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:415:26: warning: array subscript has type 'char' [-Wchar-subscripts] 415 | braslist[*ep++] = lp; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:419:26: warning: array subscript has type 'char' [-Wchar-subscripts] 419 | braelist[*ep++] = lp; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/parse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/scoprand.c /builddir/build/BUILD/nrn-7.8.1/src/oc/scoprand.c:20:13: warning: 'RCSid' defined but not used [-Wunused-variable] 20 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/settext.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/subrows.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c: In function 'nrn_cacheline_calloc': /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:246:16: warning: unused variable 'n' [-Wunused-variable] 246 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:246:13: warning: unused variable 'i' [-Wunused-variable] 246 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c: In function 'nrn_mallinfo': /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:430:9: warning: 'mallinfo' is deprecated [-Wdeprecated-declarations] 430 | m = mallinfo(); | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:25: /usr/include/malloc.h:118:24: note: declared here 118 | extern struct mallinfo mallinfo (void) __THROW __MALLOC_DEPRECATED; | ^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/x.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/x.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/xred.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/ansi.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/basic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/bind.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/buffer.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/file.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/fileio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c: In function 'emacs_vtinit': /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c:88:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 88 | if (vscreen == NULL) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c:91:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 91 | if (pscreen) { | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/lock.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/line.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/edef.h:43, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:231: In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: 'strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/region.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/memacs/edef.h:42, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c:29: /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c: In function 'emacs_yank': /builddir/build/BUILD/nrn-7.8.1/src/memacs/redef.h:146:15: warning: unused variable 'emacs_kused' [-Wunused-variable] 146 | #define kused emacs_kused | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c:551:30: note: in expansion of macro 'kused' 551 | extern unsigned kused; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/spawn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/search.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/tcap.c /builddir/build/BUILD/nrn-7.8.1/src/memacs/tcap.c:185:12: warning: 'putnpad' defined but not used [-Wunused-function] 185 | static int putnpad(str, n) | ^~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/termio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/window.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/word.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/arnoldi.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/arnoldi.c:37:13: warning: 'rcsid' defined but not used [-Wunused-variable] 37 | static char rcsid[] = "arnoldi.c,v 1.1 1997/12/04 17:55:13 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'interchange': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:55:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 55 | Real **A_me, tmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'BKPfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:108:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 108 | Real **A_me, aii, aip1, aip1i, lambda, sigma, tmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'BKPsolve': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:235:59: warning: variable 'tmp_ve' set but not used [-Wunused-but-set-variable] 235 | Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:235:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 235 | Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "bkpfacto.c,v 1.1 1997/12/04 17:55:14 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bdfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bdfactor.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "$Id: "; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/chfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/chfactor.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "chfactor.c,v 1.1 1997/12/04 17:55:15 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c: In function 'vm_move': /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c:193:17: warning: variable 'dim0' set but not used [-Wunused-but-set-variable] 193 | int dim0, i; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c:28:17: warning: 'rcsid' defined but not used [-Wunused-variable] 28 | static char rcsid[] = "copy.c,v 1.1 1997/12/04 17:55:17 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/conjgrad.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/conjgrad.c:52:17: warning: 'rcsid' defined but not used [-Wunused-variable] 52 | static char rcsid[] = "conjgrad.c,v 1.1 1997/12/04 17:55:16 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c: In function 'main': /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:38: warning: unused variable 'dtmp' [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:31: warning: unused variable 'deps1' [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:31: warning: 'deps1' defined but not used [-Wunused-variable] /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:38: warning: 'dtmp' defined but not used [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/err.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/err.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "err.c,v 1.1 1997/12/04 17:55:19 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/fft.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/fft.c:34:13: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "fft.c,v 1.1 1997/12/04 17:55:20 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmm': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:439:31: warning: unused variable 'k' [-Wunused-variable] 439 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:439:28: warning: unused variable 'j' [-Wunused-variable] 439 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmtrm': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:458:28: warning: unused variable 'j' [-Wunused-variable] 458 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:458:25: warning: unused variable 'i' [-Wunused-variable] 458 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmmtr': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:476:31: warning: unused variable 'k' [-Wunused-variable] 476 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:476:28: warning: unused variable 'j' [-Wunused-variable] 476 | register int i, j, k; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:87:17: warning: 'rcsid' defined but not used [-Wunused-variable] 87 | static char rcsid[] = "$Id: extras.c,v 1.4 1995/06/08 15:13:15 des Exp $"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/givens.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/mesch/givens.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "givens.c,v 1.1 1997/12/04 17:55:22 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hessen.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hessen.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "hessen.c,v 1.1 1997/12/04 17:55:23 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hsehldr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hsehldr.c:37:17: warning: 'rcsid' defined but not used [-Wunused-variable] 37 | static char rcsid[] = "hsehldr.c,v 1.1 1997/12/04 17:55:24 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/init.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/init.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "init.c,v 1.1 1997/12/04 17:55:25 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c: In function 'iter_copy2': /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c:207:21: warning: operation on 'ip2->shared_x' may be undefined [-Wsequence-point] 207 | ip2->shared_x = ip2->shared_x = FALSE; At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c:44:13: warning: 'rcsid' defined but not used [-Wunused-variable] 44 | static char rcsid[] = "iter0.c,v 1.1 1997/12/04 17:55:26 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/itersym.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/itersym.c:43:13: warning: 'rcsid' defined but not used [-Wunused-variable] 43 | static char rcsid[] = "itersym.c,v 1.1 1997/12/04 17:55:29 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:826:13: warning: 'test_mgcr' defined but not used [-Wunused-function] 826 | static void test_mgcr(ip,i,Q,R) | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:541:13: warning: 'test_gmres' defined but not used [-Wunused-function] 541 | static void test_gmres(ip,i,Q,R,givc,givs,h_val) | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:43:13: warning: 'rcsid' defined but not used [-Wunused-variable] 43 | static char rcsid[] = "iternsym.c,v 1.1 1997/12/04 17:55:27 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c: In function 'iv_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c:117:15: warning: operation on 'iv->ive' may be undefined [-Wsequence-point] 117 | iv->ive = RENEW(iv->ive,new_dim,int); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "ivecop.c,v 1.1 1997/12/04 17:55:30 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lanczos.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lanczos.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "lanczos.c,v 1.1 1997/12/04 17:55:31 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/machine.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/machine.c:35:18: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char *rcsid = "machine.c,v 1.1 1997/12/04 17:55:33 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lufactor.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/mesch/lufactor.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "lufactor.c,v 1.1 1997/12/04 17:55:32 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matlab.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matlab.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "matlab.c,v 1.1 1997/12/04 17:55:34 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matop.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "matop.c,v 1.1 1997/12/04 17:55:35 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matrixio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matrixio.c:35:13: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "matrixio.c,v 1.1 1997/12/04 17:55:35 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/meminfo.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/meminfo.c:46:13: warning: 'rcsid' defined but not used [-Wunused-variable] 46 | static char rcsid[] = "meminfo.c,v 1.1 1997/12/04 17:55:37 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memstat.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memstat.c:44:13: warning: 'rcsid' defined but not used [-Wunused-variable] 44 | static char rcsid[] = "memstat.c,v 1.1 1997/12/04 17:55:39 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'm_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:287:13: warning: operation on 'A->me' may be undefined [-Wsequence-point] 287 | A->me = RENEW(A->me,new_m,Real *); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:303:15: warning: operation on 'A->base' may be undefined [-Wsequence-point] 303 | A->base = RENEW(A->base,new_size,Real); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'px_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:421:14: warning: operation on 'px->pe' may be undefined [-Wsequence-point] 421 | px->pe = RENEW(px->pe,new_size,u_int); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'v_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:466:13: warning: operation on 'x->ve' may be undefined [-Wsequence-point] 466 | x->ve = RENEW(x->ve,new_dim,Real); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "memory.c,v 1.1 1997/12/04 17:55:38 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/norm.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/norm.c:31:17: warning: 'rcsid' defined but not used [-Wunused-variable] 31 | static char rcsid[] = "norm.c,v 1.1 1997/12/04 17:55:43 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/mfunc.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/mfunc.c:39:17: warning: 'rcsid' defined but not used [-Wunused-variable] 39 | static char rcsid[] = "mfunc.c,v 1.1 1997/12/04 17:55:41 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/otherio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/otherio.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "otherio.c,v 1.1 1997/12/04 17:55:44 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/pxop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/pxop.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "pxop.c,v 1.1 1997/12/04 17:55:44 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/qrfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/qrfactor.c:42:17: warning: 'rcsid' defined but not used [-Wunused-variable] 42 | static char rcsid[] = "qrfactor.c,v 1.1 1997/12/04 17:55:45 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/solve.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/solve.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "solve.c,v 1.1 1997/12/04 17:55:47 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'hhldr3cols': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:74:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 74 | Real **A_me, ip, prod; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'hhldr3rows': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:123:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 123 | Real **A_me, ip, prod; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'schur': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:159:51: warning: unused variable 't' [-Wunused-variable] 159 | Real beta2, c, discrim, dummy, nu1, s, t, tmp, x, y, z; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "schur.c,v 1.1 1997/12/04 17:55:46 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparseio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparseio.c:36:13: warning: 'rcsid' defined but not used [-Wunused-variable] 36 | static char rcsid[] = "sparseio.c,v 1.1 1997/12/04 17:55:49 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_set_val': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:99:17: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 99 | r->elt = RENEW(r->elt,new_len,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_mv_mlt': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:127:22: warning: variable 'n' set but not used [-Wunused-but-set-variable] 127 | int i, j_idx, m, n, max_idx; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_vm_mlt': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:163:22: warning: variable 'n' set but not used [-Wunused-but-set-variable] 163 | int i, j_idx, m, n, max_idx; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_copy2': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:679:16: warning: operation on 'mesch_out->row' may be undefined [-Wsequence-point] 679 | OUT->row = RENEW(OUT->row,A->m,SPROW); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:756:14: warning: operation on 'A->row' may be undefined [-Wsequence-point] 756 | A->row = RENEW(A->row,(unsigned)m,SPROW); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:783:20: warning: operation on 'A->start_row' may be undefined [-Wsequence-point] 783 | A->start_row = RENEW(A->start_row,(unsigned)n,int); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:784:20: warning: operation on 'A->start_idx' may be undefined [-Wsequence-point] 784 | A->start_idx = RENEW(A->start_idx,(unsigned)n,int); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "sparse.c,v 1.1 1997/12/04 17:55:48 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c: In function 'spICHfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c:386:23: warning: variable 'n' set but not used [-Wunused-but-set-variable] 386 | int k, m, n, nxt_row, nxt_idx, diag_idx; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "spchfctr.c,v 1.1 1997/12/04 17:55:51 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c: In function 'spILUfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c:306:37: warning: variable 'm' set but not used [-Wunused-but-set-variable] 306 | int i, k, idx, idx_piv, m, n, old_idx, old_idx_piv; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c: In function 'spBKPfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:569:17: warning: variable 'row_num' set but not used [-Wunused-but-set-variable] 569 | int row_num; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:567:44: warning: variable 'r' set but not used [-Wunused-but-set-variable] 567 | int i, j, k, l, n, onebyone=0, r; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "spbkp.c,v 1.1 1997/12/04 17:55:50 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_xpd': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:202:14: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 202 | r->elt = RENEW(r->elt,newlen,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:248:14: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 248 | r->elt = RENEW(r->elt,n,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_set_val': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:692:17: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 692 | r->elt = RENEW(r->elt,new_len,row_elt); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "sprow.c,v 1.1 1997/12/04 17:55:53 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spswap.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spswap.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "spswap.c,v 1.1 1997/12/04 17:55:54 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/submat.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/submat.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "submat.c,v 1.1 1997/12/04 17:55:55 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/symmeig.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/symmeig.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "symmeig.c,v 1.1 1997/12/04 17:55:57 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/svd.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/svd.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "svd.c,v 1.1 1997/12/04 17:55:56 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/update.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/update.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "update.c,v 1.1 1997/12/04 17:56:01 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/vecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/vecop.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "vecop.c,v 1.1 1997/12/04 17:56:02 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c: In function 'zvm_move': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c:175:17: warning: variable 'dim0' set but not used [-Wunused-but-set-variable] 175 | int dim0, i; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c:28:17: warning: 'rcsid' defined but not used [-Wunused-variable] 28 | static char rcsid[] = "zcopy.c,v 1.1 1997/12/04 17:56:04 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zfunc.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zfunc.c:35:13: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "zfunc.c,v 1.1 1997/12/04 17:56:05 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zgivens.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zgivens.c:36:17: warning: 'rcsid' defined but not used [-Wunused-variable] 36 | static char rcsid[] = "$Id: "; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhessen.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhessen.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "zhessen.c,v 1.1 1997/12/04 17:56:07 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhsehldr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhsehldr.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "zhsehldr.c,v 1.1 1997/12/04 17:56:08 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmachine.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmachine.c:35:18: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char *rcsid = "zmachine.c,v 1.1 1997/12/04 17:56:10 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zlufctr.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/mesch/zlufctr.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "zlufctr.c,v 1.1 1997/12/04 17:56:09 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatlab.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatlab.c:41:13: warning: 'rcsid' defined but not used [-Wunused-variable] 41 | static char rcsid[] = "zmatlab.c,v 1.1 1997/12/04 17:56:11 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatio.c:33:13: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zmatio.c,v 1.1 1997/12/04 17:56:11 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c: In function 'zm_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:250:13: warning: operation on 'A->me' may be undefined [-Wsequence-point] 250 | A->me = RENEW(A->me,new_m,complex *); /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:266:15: warning: operation on 'A->base' may be undefined [-Wsequence-point] 266 | A->base = RENEW(A->base,new_size,complex); /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c: In function 'zv_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:385:13: warning: operation on 'x->ve' may be undefined [-Wsequence-point] 385 | x->ve = RENEW(x->ve,new_dim,complex); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zmemory.c,v 1.1 1997/12/04 17:56:13 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatop.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "zmatop.c,v 1.1 1997/12/04 17:56:12 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/znorm.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/znorm.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "znorm.c,v 1.1 1997/12/04 17:56:14 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zschur.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zschur.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "zschur.c,v 1.1 1997/12/04 17:56:16 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zqrfctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zqrfctr.c:42:17: warning: 'rcsid' defined but not used [-Wunused-variable] 42 | static char rcsid[] = "zqrfctr.c,v 1.1 1997/12/04 17:56:15 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zsolve.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zsolve.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zsolve.c,v 1.1 1997/12/04 17:56:17 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zvecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zvecop.c:31:17: warning: 'rcsid' defined but not used [-Wunused-variable] 31 | static char rcsid[] = "zvecop.c,v 1.1 1997/12/04 17:56:19 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:116:34: warning: missing braces around initializer [-Wmissing-braces] 116 | static VoidFunc hoc_intfunc[] = { | ^ 117 | 0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:119:38: warning: missing braces around initializer [-Wmissing-braces] 119 | static Member_func _member_func[] = { | ^ 120 | "loc", _hoc_loc_pnt, | { } 121 | "has_loc", _hoc_has_loc, | { } 122 | "get_loc", _hoc_get_loc_pnt, | { } 123 | "check", _hoc_check, | { } 124 | "record", _hoc_record, | { } 125 | 0, 0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | "thresh", "mV", | { } 134 | "time", "ms", | { } 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:170:15: warning: unused variable 'prop_ion' [-Wunused-variable] 170 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_apcount_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:200:13: warning: unused variable '_vectorized' [-Wunused-variable] 200 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:18: warning: unused variable '_save' [-Wunused-variable] 293 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:7: warning: unused variable '_i' [-Wunused-variable] 293 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_cur__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:35: warning: variable '_v' set but not used [-Wunused-but-set-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:29: warning: unused variable '_rhs' [-Wunused-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:9: warning: variable '_p' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_jacob__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:20: warning: unused variable '_ppvar' [-Wunused-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:420:6: warning: unused variable '_i' [-Wunused-variable] 420 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:419:21: warning: unused variable '_p' [-Wunused-variable] 419 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:416:13: warning: 'terminal' defined but not used [-Wunused-function] 416 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:28:22: warning: '_nrn_current__APCount' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__APCount | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:335:15: note: in expansion of macro '_nrn_current' 335 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:226:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 226 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:224:12: warning: '_ninits' defined but not used [-Wunused-variable] 224 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:223:12: warning: 'error' defined but not used [-Wunused-variable] 223 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:221:14: warning: 'modelname' defined but not used [-Wunused-variable] 221 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:220:12: warning: '_reset' defined but not used [-Wunused-variable] 220 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:137:16: warning: 'delta_t' defined but not used [-Wunused-variable] 137 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:111:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 111 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:188:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 188 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:82:34: warning: missing braces around initializer [-Wmissing-braces] 82 | static VoidFunc hoc_intfunc[] = { | ^ 83 | "setdata_feature", _hoc_setdata, | { } 84 | "install_vector_fitness", _hoc_install_vector_fitness, | { } 85 | 0, 0 | { 86 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:44: warning: missing braces around initializer [-Wmissing-braces] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^ 90 | 0,0,0 | { { 91 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:42: warning: missing braces around initializer [-Wmissing-braces] 92 | static HocParmUnits _hoc_parm_units[] = { | ^ 93 | 0,0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:97:33: warning: missing braces around initializer [-Wmissing-braces] 97 | static DoubScal hoc_scdoub[] = { | ^ 98 | 0,0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:100:31: warning: missing braces around initializer [-Wmissing-braces] 100 | static DoubVec hoc_vdoub[] = { | ^ 101 | 0,0,0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:120:28: warning: unused variable '_ppvar' [-Wunused-variable] 120 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:119:15: warning: unused variable 'prop_ion' [-Wunused-variable] 119 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_feature_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:135:13: warning: unused variable '_vectorized' [-Wunused-variable] 135 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'width': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:152:13: warning: unused variable 'i' [-Wunused-variable] 152 | int i, nx, ny, i1, i2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'xfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:177:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 177 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'yfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:207:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 207 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:18: warning: unused variable '_save' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:7: warning: unused variable '_i' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:324:6: warning: unused variable '_i' [-Wunused-variable] 324 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:321:13: warning: 'terminal' defined but not used [-Wunused-function] 321 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:30:19: warning: '_nrn_state_' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state_ | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:297:13: note: in expansion of macro 'nrn_state' 297 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:28:22: warning: '_nrn_current_' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current_ | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:293:15: note: in expansion of macro '_nrn_current' 293 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:25:18: warning: '_nrn_init_' defined but not used [-Wunused-function] 25 | #define nrn_init _nrn_init_ | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:272:13: note: in expansion of macro 'nrn_init' 272 | static void nrn_init(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:146:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 146 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:143:12: warning: 'error' defined but not used [-Wunused-variable] 143 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:141:14: warning: 'modelname' defined but not used [-Wunused-variable] 141 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:140:12: warning: '_reset' defined but not used [-Wunused-variable] 140 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:118:13: warning: 'nrn_alloc' defined but not used [-Wunused-function] 118 | static void nrn_alloc(Prop* _prop) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:108:21: warning: '_mechanism' defined but not used [-Wunused-variable] 108 | static const char *_mechanism[] = { | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:103:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 103 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:22: warning: '_hoc_parm_units' defined but not used [-Wunused-variable] 92 | static HocParmUnits _hoc_parm_units[] = { | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:23: warning: '_hoc_parm_limits' defined but not used [-Wunused-variable] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:60:13: warning: 'hoc_nrnpointerindex' defined but not used [-Wunused-variable] 60 | static int hoc_nrnpointerindex = -1; | ^~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:117:34: warning: missing braces around initializer [-Wmissing-braces] 117 | static VoidFunc hoc_intfunc[] = { | ^ 118 | 0,0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:120:38: warning: missing braces around initializer [-Wmissing-braces] 120 | static Member_func _member_func[] = { | ^ 121 | "loc", _hoc_loc_pnt, | { } 122 | "has_loc", _hoc_has_loc, | { } 123 | "get_loc", _hoc_get_loc_pnt, | { } 124 | "I", _hoc_I, | { } 125 | "M", _hoc_M, | { } 126 | "firetime", _hoc_firetime, | { } 127 | "newton1", _hoc_newton1, | { } 128 | 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:140:44: warning: missing braces around initializer [-Wmissing-braces] 140 | static HocParmLimits _hoc_parm_limits[] = { | ^ 141 | 0,0,0 | { { 142 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:143:42: warning: missing braces around initializer [-Wmissing-braces] 143 | static HocParmUnits _hoc_parm_units[] = { | ^ 144 | "taus", "ms", | { } 145 | "taum", "ms", | { } 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:179:15: warning: unused variable 'prop_ion' [-Wunused-variable] 179 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_intfire2_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:212:13: warning: unused variable '_vectorized' [-Wunused-variable] 212 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'I_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:268:15: warning: variable '_lf' set but not used [-Wunused-but-set-variable] 268 | double _lx , _lf ; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'newton1_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:371:38: warning: variable '_lxm' set but not used [-Wunused-but-set-variable] 371 | double _ldx , _lf , _ldf , _liter , _lxm ; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:18: warning: unused variable '_save' [-Wunused-variable] 415 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:7: warning: unused variable '_i' [-Wunused-variable] 415 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_init__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:19: warning: unused variable '_v' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:7: warning: unused variable '_nd' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_state__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:469:6: warning: unused variable '_i' [-Wunused-variable] 469 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:468:21: warning: unused variable '_p' [-Wunused-variable] 468 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:465:13: warning: 'terminal' defined but not used [-Wunused-function] 465 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:30:19: warning: '_nrn_state__IntFire2' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire2 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:448:13: note: in expansion of macro 'nrn_state' 448 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:28:22: warning: '_nrn_current__IntFire2' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire2 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:444:15: note: in expansion of macro '_nrn_current' 444 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:243:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 243 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:241:12: warning: '_ninits' defined but not used [-Wunused-variable] 241 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:240:12: warning: 'error' defined but not used [-Wunused-variable] 240 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:238:14: warning: 'modelname' defined but not used [-Wunused-variable] 238 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:237:12: warning: '_reset' defined but not used [-Wunused-variable] 237 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:112:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 112 | static void _hoc_setdata(void* _vptr) { Prop* make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:197:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 197 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:106:34: warning: missing braces around initializer [-Wmissing-braces] 106 | static VoidFunc hoc_intfunc[] = { | ^ 107 | 0,0 | { 108 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:109:38: warning: missing braces around initializer [-Wmissing-braces] 109 | static Member_func _member_func[] = { | ^ 110 | "loc", _hoc_loc_pnt, | { } 111 | "has_loc", _hoc_has_loc, | { } 112 | "get_loc", _hoc_get_loc_pnt, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:117:44: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmLimits _hoc_parm_limits[] = { | ^ 118 | 0,0,0 | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:120:42: warning: missing braces around initializer [-Wmissing-braces] 120 | static HocParmUnits _hoc_parm_units[] = { | ^ 121 | 0,0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:124:33: warning: missing braces around initializer [-Wmissing-braces] 124 | static DoubScal hoc_scdoub[] = { | ^ 125 | 0,0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:127:31: warning: missing braces around initializer [-Wmissing-braces] 127 | static DoubVec hoc_vdoub[] = { | ^ 128 | 0,0,0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:149:15: warning: unused variable 'prop_ion' [-Wunused-variable] 149 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_ppmark_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:176:13: warning: unused variable '_vectorized' [-Wunused-variable] 176 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:18: warning: unused variable '_save' [-Wunused-variable] 205 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:7: warning: unused variable '_i' [-Wunused-variable] 205 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_nrn_state__PointProcessMark': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:268:6: warning: unused variable '_i' [-Wunused-variable] 268 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:267:21: warning: unused variable '_p' [-Wunused-variable] 267 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:264:13: warning: 'terminal' defined but not used [-Wunused-function] 264 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:30:19: warning: '_nrn_state__PointProcessMark' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:238:13: note: in expansion of macro 'nrn_state' 238 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:28:22: warning: '_nrn_current__PointProcessMark' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:234:15: note: in expansion of macro '_nrn_current' 234 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:202:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 202 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:200:12: warning: '_ninits' defined but not used [-Wunused-variable] 200 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:199:12: warning: 'error' defined but not used [-Wunused-variable] 199 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:197:14: warning: 'modelname' defined but not used [-Wunused-variable] 197 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:196:12: warning: '_reset' defined but not used [-Wunused-variable] 196 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:130:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 130 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:101:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 101 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:62:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 62 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:164:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 164 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:118:34: warning: missing braces around initializer [-Wmissing-braces] 118 | static VoidFunc hoc_intfunc[] = { | ^ 119 | 0,0 | { 120 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:121:38: warning: missing braces around initializer [-Wmissing-braces] 121 | static Member_func _member_func[] = { | ^ 122 | "loc", _hoc_loc_pnt, | { } 123 | "has_loc", _hoc_has_loc, | { } 124 | "get_loc", _hoc_get_loc_pnt, | { } 125 | "icur", _hoc_icur, | { } 126 | "vstim", _hoc_vstim, | { } 127 | 0, 0 | { 128 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:131:44: warning: missing braces around initializer [-Wmissing-braces] 131 | static HocParmLimits _hoc_parm_limits[] = { | ^ 132 | "rs", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "rs", "megohm", | { } 137 | "on", "ms", | { } 138 | "off", "ms", | { } 139 | "vc", "mV", | { } 140 | "i", "nA", | { } 141 | 0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:145:33: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubScal hoc_scdoub[] = { | ^ 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:148:31: warning: missing braces around initializer [-Wmissing-braces] 148 | static DoubVec hoc_vdoub[] = { | ^ 149 | 0,0,0 | { 150 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_oclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:210:13: warning: unused variable '_vectorized' [-Wunused-variable] 210 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:18: warning: unused variable '_save' [-Wunused-variable] 292 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:7: warning: unused variable '_i' [-Wunused-variable] 292 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_nrn_jacob__OClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:20: warning: unused variable '_ppvar' [-Wunused-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:461:6: warning: unused variable '_i' [-Wunused-variable] 461 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:460:21: warning: unused variable '_p' [-Wunused-variable] 460 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:457:13: warning: 'terminal' defined but not used [-Wunused-function] 457 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:236:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 236 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:234:12: warning: '_ninits' defined but not used [-Wunused-variable] 234 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:233:12: warning: 'error' defined but not used [-Wunused-variable] 233 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:231:14: warning: 'modelname' defined but not used [-Wunused-variable] 231 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:230:12: warning: '_reset' defined but not used [-Wunused-variable] 230 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:151:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 151 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:143:16: warning: 'delta_t' defined but not used [-Wunused-variable] 143 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:113:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 113 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:198:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 198 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | "alpha", _hoc_alpha, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:128:44: warning: missing braces around initializer [-Wmissing-braces] 128 | static HocParmLimits _hoc_parm_limits[] = { | ^ 129 | "gmax", 0, 1e+09, | { { }} 130 | "tau", 0.001, 1e+06, | { { }} 131 | 0,0,0 | { { 132 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:133:42: warning: missing braces around initializer [-Wmissing-braces] 133 | static HocParmUnits _hoc_parm_units[] = { | ^ 134 | "onset", "ms", | { } 135 | "tau", "ms", | { } 136 | "gmax", "uS", | { } 137 | "e", "mV", | { } 138 | "i", "nA", | { } 139 | 0,0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:142:33: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubScal hoc_scdoub[] = { | ^ 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:145:31: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubVec hoc_vdoub[] = { | ^ 146 | 0,0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:174:15: warning: unused variable 'prop_ion' [-Wunused-variable] 174 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:205:13: warning: unused variable '_vectorized' [-Wunused-variable] 205 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:18: warning: unused variable '_save' [-Wunused-variable] 257 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:7: warning: unused variable '_i' [-Wunused-variable] 257 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_jacob__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:20: warning: unused variable '_ppvar' [-Wunused-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:368:6: warning: unused variable '_i' [-Wunused-variable] 368 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:367:21: warning: unused variable '_p' [-Wunused-variable] 367 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:364:13: warning: 'terminal' defined but not used [-Wunused-function] 364 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:231:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 231 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:229:12: warning: '_ninits' defined but not used [-Wunused-variable] 229 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:228:12: warning: 'error' defined but not used [-Wunused-variable] 228 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:226:14: warning: 'modelname' defined but not used [-Wunused-variable] 226 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:225:12: warning: '_reset' defined but not used [-Wunused-variable] 225 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:148:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 148 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:193:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 193 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_cur__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:107:26: warning: '_nd' may be used uninitialized in this function [-Wmaybe-uninitialized] 107 | #define NODERHS(n) (*((n)->_rhs)) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:300:7: note: '_nd' was declared here 300 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:119:34: warning: missing braces around initializer [-Wmissing-braces] 119 | static VoidFunc hoc_intfunc[] = { | ^ 120 | 0,0 | { 121 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:122:38: warning: missing braces around initializer [-Wmissing-braces] 122 | static Member_func _member_func[] = { | ^ 123 | "loc", _hoc_loc_pnt, | { } 124 | "has_loc", _hoc_has_loc, | { } 125 | "get_loc", _hoc_get_loc_pnt, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:130:44: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmLimits _hoc_parm_limits[] = { | ^ 131 | "tau2", 1e-09, 1e+09, | { { }} 132 | "tau1", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "tau1", "ms", | { } 137 | "tau2", "ms", | { } 138 | "e", "mV", | { } 139 | "A", "uS", | { } 140 | "B", "uS", | { } 141 | "i", "nA", | { } 142 | "g", "uS", | { } 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:191:15: warning: unused variable 'prop_ion' [-Wunused-variable] 191 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:216:46: warning: missing braces around initializer [-Wmissing-braces] 216 | static HocStateTolerance _hoc_state_tol[] = { | ^ 217 | 0,0 | { 218 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_exp2syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:227:13: warning: unused variable '_vectorized' [-Wunused-variable] 227 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_net_receive__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:325:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 325 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:340:22: warning: unused variable '_v' [-Wunused-variable] 340 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:18: warning: unused variable '_save' [-Wunused-variable] 351 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:7: warning: unused variable '_i' [-Wunused-variable] 351 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_nrn_jacob__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:20: warning: unused variable '_ppvar' [-Wunused-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:499:6: warning: unused variable '_i' [-Wunused-variable] 499 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:495:13: warning: 'terminal' defined but not used [-Wunused-function] 495 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:258:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 258 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:256:12: warning: '_ninits' defined but not used [-Wunused-variable] 256 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:255:12: warning: 'error' defined but not used [-Wunused-variable] 255 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:253:14: warning: 'modelname' defined but not used [-Wunused-variable] 253 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:252:12: warning: '_reset' defined but not used [-Wunused-variable] 252 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:147:16: warning: 'delta_t' defined but not used [-Wunused-variable] 147 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:114:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 114 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:75:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 75 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:209:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 209 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:122:34: warning: missing braces around initializer [-Wmissing-braces] 122 | static VoidFunc hoc_intfunc[] = { | ^ 123 | "setdata_hh", _hoc_setdata, | { } 124 | "rates_hh", _hoc_rates, | { } 125 | "vtrap_hh", _hoc_vtrap, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:154:44: warning: missing braces around initializer [-Wmissing-braces] 154 | static HocParmLimits _hoc_parm_limits[] = { | ^ 155 | "gl_hh", 0, 1e+09, | { { }} 156 | "gkbar_hh", 0, 1e+09, | { { }} 157 | "gnabar_hh", 0, 1e+09, | { { }} 158 | "usetable_hh", 0, 1, | { { }} 159 | 0,0,0 | { { 160 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:161:42: warning: missing braces around initializer [-Wmissing-braces] 161 | static HocParmUnits _hoc_parm_units[] = { | ^ 162 | "mtau_hh", "ms", | { } 163 | "htau_hh", "ms", | { } 164 | "ntau_hh", "ms", | { } 165 | "gnabar_hh", "S/cm2", | { } 166 | "gkbar_hh", "S/cm2", | { } 167 | "gl_hh", "S/cm2", | { } 168 | "el_hh", "mV", | { } 169 | "gna_hh", "S/cm2", | { } 170 | "gk_hh", "S/cm2", | { } 171 | "il_hh", "mA/cm2", | { } 172 | 0,0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:179:33: warning: missing braces around initializer [-Wmissing-braces] 179 | static DoubScal hoc_scdoub[] = { | ^ 180 | "minf_hh", &minf_hh, | { } 181 | "hinf_hh", &hinf_hh, | { } 182 | "ninf_hh", &ninf_hh, | { } 183 | "mtau_hh", &mtau_hh, | { } 184 | "htau_hh", &htau_hh, | { } 185 | "ntau_hh", &ntau_hh, | { } 186 | "usetable_hh", &usetable_hh, | { } 187 | 0,0 | { 188 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:189:31: warning: missing braces around initializer [-Wmissing-braces] 189 | static DoubVec hoc_vdoub[] = { | ^ 190 | 0,0,0 | { 191 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:258:46: warning: missing braces around initializer [-Wmissing-braces] 258 | static HocStateTolerance _hoc_state_tol[] = { | ^ 259 | 0,0 | { 260 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_hh_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:271:13: warning: unused variable '_vectorized' [-Wunused-variable] 271 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_check_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:356:10: warning: unused variable '_xi' [-Wunused-variable] 356 | double _xi, _tmax; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:39: warning: unused variable '_ix' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:35: warning: unused variable '_j' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_n_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:385:104: warning: unused variable '_j' [-Wunused-variable] 385 | static void _n_rates(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _lv){ int _i, _j; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:488:22: warning: unused variable '_v' [-Wunused-variable] 488 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:501:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 501 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:516:22: warning: unused variable '_v' [-Wunused-variable] 516 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:18: warning: unused variable '_save' [-Wunused-variable] 553 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:7: warning: unused variable '_i' [-Wunused-variable] 553 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_nrn_jacob__hh': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:20: warning: unused variable '_ppvar' [-Wunused-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:714:6: warning: unused variable '_i' [-Wunused-variable] 714 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:710:13: warning: 'terminal' defined but not used [-Wunused-function] 710 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:318:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 318 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:316:12: warning: '_ninits' defined but not used [-Wunused-variable] 316 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:315:12: warning: 'error' defined but not used [-Wunused-variable] 315 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:313:14: warning: 'modelname' defined but not used [-Wunused-variable] 313 | static char *modelname = "hh.mod squid sodium, potassium, and leak channels"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:312:12: warning: '_reset' defined but not used [-Wunused-variable] 312 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:192:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 192 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:174:16: warning: 'delta_t' defined but not used [-Wunused-variable] 174 | static double delta_t = 0.01; | ^~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:151:34: warning: missing braces around initializer [-Wmissing-braces] 151 | static VoidFunc hoc_intfunc[] = { | ^ 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:154:38: warning: missing braces around initializer [-Wmissing-braces] 154 | static Member_func _member_func[] = { | ^ 155 | "loc", _hoc_loc_pnt, | { } 156 | "has_loc", _hoc_has_loc, | { } 157 | "get_loc", _hoc_get_loc_pnt, | { } 158 | "E", _hoc_E, | { } 159 | "I", _hoc_I, | { } 160 | "M", _hoc_M, | { } 161 | "deriv", _hoc_deriv, | { } 162 | "firetimebound", _hoc_firetimebound, | { } 163 | "factors", _hoc_factors, | { } 164 | "fixprecondition", _hoc_fixprecondition, | { } 165 | "newstates", _hoc_newstates, | { } 166 | "search", _hoc_search, | { } 167 | "update", _hoc_update, | { } 168 | 0, 0 | { 169 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:190:44: warning: missing braces around initializer [-Wmissing-braces] 190 | static HocParmLimits _hoc_parm_limits[] = { | ^ 191 | "eps_IntFire4", 1e-09, 0.01, | { { }} 192 | "taueps_IntFire4", 1e-09, 1e+09, | { { }} 193 | "taum", 0, 1e+09, | { { }} 194 | "taui2", 0, 1e+09, | { { }} 195 | "taui1", 0, 1e+09, | { { }} 196 | "taue", 0, 1e+09, | { { }} 197 | 0,0,0 | { { 198 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:199:42: warning: missing braces around initializer [-Wmissing-braces] 199 | static HocParmUnits _hoc_parm_units[] = { | ^ 200 | "eps_IntFire4", "1e-9", | { } 201 | "taueps_IntFire4", "1e-9", | { } 202 | "taue", "ms", | { } 203 | "taui1", "ms", | { } 204 | "taui2", "ms", | { } 205 | "taum", "ms", | { } 206 | "ae", "1/ms", | { } 207 | "ai1", "1/ms", | { } 208 | "ai2", "1/ms", | { } 209 | 0,0 | { 210 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:212:33: warning: missing braces around initializer [-Wmissing-braces] 212 | static DoubScal hoc_scdoub[] = { | ^ 213 | "ib_IntFire4", &ib_IntFire4, | { } 214 | "eps_IntFire4", &eps_IntFire4, | { } 215 | "taueps_IntFire4", &taueps_IntFire4, | { } 216 | 0,0 | { 217 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:218:31: warning: missing braces around initializer [-Wmissing-braces] 218 | static DoubVec hoc_vdoub[] = { | ^ 219 | 0,0,0 | { 220 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:254:15: warning: unused variable 'prop_ion' [-Wunused-variable] 254 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_intfire4_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:288:13: warning: unused variable '_vectorized' [-Wunused-variable] 288 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:18: warning: unused variable '_save' [-Wunused-variable] 665 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:7: warning: unused variable '_i' [-Wunused-variable] 665 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_init__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:19: warning: unused variable '_v' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:7: warning: unused variable '_nd' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_state__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:723:6: warning: unused variable '_i' [-Wunused-variable] 723 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:722:21: warning: unused variable '_p' [-Wunused-variable] 722 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:719:13: warning: 'terminal' defined but not used [-Wunused-function] 719 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:30:19: warning: '_nrn_state__IntFire4' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire4 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:702:13: note: in expansion of macro 'nrn_state' 702 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:28:22: warning: '_nrn_current__IntFire4' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire4 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:698:15: note: in expansion of macro '_nrn_current' 698 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:319:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 319 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:317:12: warning: '_ninits' defined but not used [-Wunused-variable] 317 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:316:12: warning: 'error' defined but not used [-Wunused-variable] 316 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:314:14: warning: 'modelname' defined but not used [-Wunused-variable] 314 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:313:12: warning: '_reset' defined but not used [-Wunused-variable] 313 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:221:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 221 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:146:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 146 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:273:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 273 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'search_IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:596:8: warning: '_lsearch' may be used uninitialized in this function [-Wmaybe-uninitialized] 596 | return _lsearch; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:585:17: warning: '_lt2' may be used uninitialized in this function [-Wmaybe-uninitialized] 585 | while ( _lt2 - _lt1 > 1e-6 && flag == 0.0 ) { | ~~~~~^~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:96:34: warning: missing braces around initializer [-Wmissing-braces] 96 | static VoidFunc hoc_intfunc[] = { | ^ 97 | "setdata_pas", _hoc_setdata, | { } 98 | 0, 0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:102:44: warning: missing braces around initializer [-Wmissing-braces] 102 | static HocParmLimits _hoc_parm_limits[] = { | ^ 103 | "g_pas", 0, 1e+09, | { { }} 104 | 0,0,0 | { { 105 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:106:42: warning: missing braces around initializer [-Wmissing-braces] 106 | static HocParmUnits _hoc_parm_units[] = { | ^ 107 | "g_pas", "S/cm2", | { } 108 | "e_pas", "mV", | { } 109 | "i_pas", "mA/cm2", | { } 110 | 0,0 | { 111 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:113:33: warning: missing braces around initializer [-Wmissing-braces] 113 | static DoubScal hoc_scdoub[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:116:31: warning: missing braces around initializer [-Wmissing-braces] 116 | static DoubVec hoc_vdoub[] = { | ^ 117 | 0,0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:141:28: warning: unused variable '_ppvar' [-Wunused-variable] 141 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:140:15: warning: unused variable 'prop_ion' [-Wunused-variable] 140 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_passive_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:158:13: warning: unused variable '_vectorized' [-Wunused-variable] 158 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:18: warning: unused variable '_save' [-Wunused-variable] 182 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:7: warning: unused variable '_i' [-Wunused-variable] 182 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_nrn_jacob__pas': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:20: warning: unused variable '_ppvar' [-Wunused-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:287:6: warning: unused variable '_i' [-Wunused-variable] 287 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:286:21: warning: unused variable '_p' [-Wunused-variable] 286 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:283:13: warning: 'terminal' defined but not used [-Wunused-function] 283 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:179:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 179 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:177:12: warning: '_ninits' defined but not used [-Wunused-variable] 177 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:176:12: warning: 'error' defined but not used [-Wunused-variable] 176 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:174:14: warning: 'modelname' defined but not used [-Wunused-variable] 174 | static char *modelname = "passive membrane channel"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:173:12: warning: '_reset' defined but not used [-Wunused-variable] 173 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:119:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 119 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:65:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 65 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | 0, 0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:122:44: warning: missing braces around initializer [-Wmissing-braces] 122 | static HocParmLimits _hoc_parm_limits[] = { | ^ 123 | "dur", 0, 1e+09, | { { }} 124 | 0,0,0 | { { 125 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:126:42: warning: missing braces around initializer [-Wmissing-braces] 126 | static HocParmUnits _hoc_parm_units[] = { | ^ 127 | "del", "ms", | { } 128 | "dur", "ms", | { } 129 | "amp", "nA", | { } 130 | "i", "nA", | { } 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:134:33: warning: missing braces around initializer [-Wmissing-braces] 134 | static DoubScal hoc_scdoub[] = { | ^ 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:137:31: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubVec hoc_vdoub[] = { | ^ 138 | 0,0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:165:15: warning: unused variable 'prop_ion' [-Wunused-variable] 165 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_stim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:195:13: warning: unused variable '_vectorized' [-Wunused-variable] 195 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:18: warning: unused variable '_save' [-Wunused-variable] 224 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:7: warning: unused variable '_i' [-Wunused-variable] 224 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_nrn_jacob__IClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:20: warning: unused variable '_ppvar' [-Wunused-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:369:6: warning: unused variable '_i' [-Wunused-variable] 369 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:368:21: warning: unused variable '_p' [-Wunused-variable] 368 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:365:13: warning: 'terminal' defined but not used [-Wunused-function] 365 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:221:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 221 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:219:12: warning: '_ninits' defined but not used [-Wunused-variable] 219 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:218:12: warning: 'error' defined but not used [-Wunused-variable] 218 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:216:14: warning: 'modelname' defined but not used [-Wunused-variable] 216 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:215:12: warning: '_reset' defined but not used [-Wunused-variable] 215 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:140:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 140 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:106:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 106 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:67:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 67 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:183:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 183 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "icur", _hoc_icur, | { } 136 | "update", _hoc_update, | { } 137 | "vstim", _hoc_vstim, | { } 138 | 0, 0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:144:44: warning: missing braces around initializer [-Wmissing-braces] 144 | static HocParmLimits _hoc_parm_limits[] = { | ^ 145 | "dur", 0, 1e+09, | { { }} 146 | "fac", 1, 10, | { { }} 147 | "gain", 0, 1e+09, | { { }} 148 | "rstim", 1e-09, 1e+09, | { { }} 149 | "tau2", 0, 1e+09, | { { }} 150 | "tau1", 0, 1e+09, | { { }} 151 | 0,0,0 | { { 152 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:153:42: warning: missing braces around initializer [-Wmissing-braces] 153 | static HocParmUnits _hoc_parm_units[] = { | ^ 154 | "dur", "ms", | { } 155 | "amp", "mV", | { } 156 | "rstim", "megohm", | { } 157 | "tau1", "ms", | { } 158 | "tau2", "ms", | { } 159 | "e0", "mV", | { } 160 | "vo0", "mV", | { } 161 | "vi0", "mV", | { } 162 | "fac", "1.0", | { } 163 | "e", "mV", | { } 164 | "vo", "mV", | { } 165 | "vi", "mV", | { } 166 | "i", "nA", | { } 167 | 0,0 | { 168 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:172:33: warning: missing braces around initializer [-Wmissing-braces] 172 | static DoubScal hoc_scdoub[] = { | ^ 173 | 0,0 | { 174 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:175:31: warning: missing braces around initializer [-Wmissing-braces] 175 | static DoubVec hoc_vdoub[] = { | ^ 176 | 0,0,0 | { 177 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:213:15: warning: unused variable 'prop_ion' [-Wunused-variable] 213 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_vclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:248:13: warning: unused variable '_vectorized' [-Wunused-variable] 248 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'icur_VClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:306:9: warning: unused variable '_lvout' [-Wunused-variable] 306 | double _lvout ; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:382:7: warning: unused variable '_i' [-Wunused-variable] 382 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:561:6: warning: unused variable '_i' [-Wunused-variable] 561 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:558:13: warning: 'terminal' defined but not used [-Wunused-function] 558 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:274:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 274 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:269:14: warning: 'modelname' defined but not used [-Wunused-variable] 269 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:268:12: warning: '_reset' defined but not used [-Wunused-variable] 268 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:169:16: warning: 'delta_t' defined but not used [-Wunused-variable] 169 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:236:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 236 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:125:44: warning: missing braces around initializer [-Wmissing-braces] 125 | static HocParmLimits _hoc_parm_limits[] = { | ^ 126 | "tau", 1e-09, 1e+09, | { { }} 127 | 0,0,0 | { { 128 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:129:42: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmUnits _hoc_parm_units[] = { | ^ 130 | "tau", "ms", | { } 131 | "e", "mV", | { } 132 | "g", "uS", | { } 133 | "i", "nA", | { } 134 | 0,0 | { 135 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:202:46: warning: missing braces around initializer [-Wmissing-braces] 202 | static HocStateTolerance _hoc_state_tol[] = { | ^ 203 | 0,0 | { 204 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_expsyn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:213:13: warning: unused variable '_vectorized' [-Wunused-variable] 213 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_net_receive__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:288:22: warning: unused variable '_v' [-Wunused-variable] 288 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:299:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 299 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:18: warning: unused variable '_save' [-Wunused-variable] 325 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:7: warning: unused variable '_i' [-Wunused-variable] 325 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_nrn_jacob__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:20: warning: unused variable '_ppvar' [-Wunused-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:460:6: warning: unused variable '_i' [-Wunused-variable] 460 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:456:13: warning: 'terminal' defined but not used [-Wunused-function] 456 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:244:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 244 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:242:12: warning: '_ninits' defined but not used [-Wunused-variable] 242 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:241:12: warning: 'error' defined but not used [-Wunused-variable] 241 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:239:14: warning: 'modelname' defined but not used [-Wunused-variable] 239 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:238:12: warning: '_reset' defined but not used [-Wunused-variable] 238 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:136:16: warning: 'delta_t' defined but not used [-Wunused-variable] 136 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:70:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 70 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:195:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 195 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:113:34: warning: missing braces around initializer [-Wmissing-braces] 113 | static VoidFunc hoc_intfunc[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:116:38: warning: missing braces around initializer [-Wmissing-braces] 116 | static Member_func _member_func[] = { | ^ 117 | "loc", _hoc_loc_pnt, | { } 118 | "has_loc", _hoc_has_loc, | { } 119 | "get_loc", _hoc_get_loc_pnt, | { } 120 | "M", _hoc_M, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:127:44: warning: missing braces around initializer [-Wmissing-braces] 127 | static HocParmLimits _hoc_parm_limits[] = { | ^ 128 | 0,0,0 | { { 129 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:130:42: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmUnits _hoc_parm_units[] = { | ^ 131 | "tau", "ms", | { } 132 | "refrac", "ms", | { } 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:136:33: warning: missing braces around initializer [-Wmissing-braces] 136 | static DoubScal hoc_scdoub[] = { | ^ 137 | 0,0 | { 138 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:139:31: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubVec hoc_vdoub[] = { | ^ 140 | 0,0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:164:15: warning: unused variable 'prop_ion' [-Wunused-variable] 164 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_intfire1_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:196:13: warning: unused variable '_vectorized' [-Wunused-variable] 196 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_net_receive__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:258:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 258 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:18: warning: unused variable '_save' [-Wunused-variable] 282 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:7: warning: unused variable '_i' [-Wunused-variable] 282 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_init__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:19: warning: unused variable '_v' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:7: warning: unused variable '_nd' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_state__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:332:6: warning: unused variable '_i' [-Wunused-variable] 332 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:331:21: warning: unused variable '_p' [-Wunused-variable] 331 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:328:13: warning: 'terminal' defined but not used [-Wunused-function] 328 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:30:19: warning: '_nrn_state__IntFire1' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire1 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:311:13: note: in expansion of macro 'nrn_state' 311 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:28:22: warning: '_nrn_current__IntFire1' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire1 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:307:15: note: in expansion of macro '_nrn_current' 307 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:227:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 227 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:225:12: warning: '_ninits' defined but not used [-Wunused-variable] 225 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:224:12: warning: 'error' defined but not used [-Wunused-variable] 224 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:222:14: warning: 'modelname' defined but not used [-Wunused-variable] 222 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:221:12: warning: '_reset' defined but not used [-Wunused-variable] 221 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:142:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 142 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:108:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 108 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:181:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 181 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'M_IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:243:8: warning: '_lM' may be used uninitialized in this function [-Wmaybe-uninitialized] 243 | return _lM; | ^~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "erand", _hoc_erand, | { } 136 | "init_sequence", _hoc_init_sequence, | { } 137 | "invl", _hoc_invl, | { } 138 | "next_invl", _hoc_next_invl, | { } 139 | "noiseFromRandom123", _hoc_noiseFromRandom123, | { } 140 | "noiseFromRandom", _hoc_noiseFromRandom, | { } 141 | "seed", _hoc_seed, | { } 142 | 0, 0 | { 143 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:150:44: warning: missing braces around initializer [-Wmissing-braces] 150 | static HocParmLimits _hoc_parm_limits[] = { | ^ 151 | "interval", 1e-09, 1e+09, | { { }} 152 | "noise", 0, 1, | { { }} 153 | "number", 0, 1e+09, | { { }} 154 | 0,0,0 | { { 155 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:156:42: warning: missing braces around initializer [-Wmissing-braces] 156 | static HocParmUnits _hoc_parm_units[] = { | ^ 157 | "interval", "ms", | { } 158 | "start", "ms", | { } 159 | 0,0 | { 160 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:162:33: warning: missing braces around initializer [-Wmissing-braces] 162 | static DoubScal hoc_scdoub[] = { | ^ 163 | 0,0 | { 164 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:165:31: warning: missing braces around initializer [-Wmissing-braces] 165 | static DoubVec hoc_vdoub[] = { | ^ 166 | 0,0,0 | { 167 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_netstim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:228:13: warning: unused variable '_vectorized' [-Wunused-variable] 228 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:18: warning: unused variable '_save' [-Wunused-variable] 586 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:7: warning: unused variable '_i' [-Wunused-variable] 586 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_init__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:19: warning: unused variable '_v' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:7: warning: unused variable '_nd' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_state__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:655:6: warning: unused variable '_i' [-Wunused-variable] 655 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:654:21: warning: unused variable '_p' [-Wunused-variable] 654 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:651:13: warning: 'terminal' defined but not used [-Wunused-function] 651 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:30:19: warning: '_nrn_state__NetStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__NetStim | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:634:13: note: in expansion of macro 'nrn_state' 634 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:28:22: warning: '_nrn_current__NetStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__NetStim | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:630:15: note: in expansion of macro '_nrn_current' 630 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:518:13: warning: 'bbcore_read' defined but not used [-Wunused-function] 518 | static void bbcore_read(double* x, int* d, int* xx, int* offset, _threadargsproto_) { | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:261:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 261 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:259:12: warning: '_ninits' defined but not used [-Wunused-variable] 259 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:258:12: warning: 'error' defined but not used [-Wunused-variable] 258 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:256:14: warning: 'modelname' defined but not used [-Wunused-variable] 256 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:255:12: warning: '_reset' defined but not used [-Wunused-variable] 255 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:168:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 168 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netsmake[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' tim.c:123:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 123 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:211:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 211 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | "initps", _hoc_initps, | { } 119 | "play", _hoc_play, | { } 120 | "sendgroup", _hoc_sendgroup, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:137:33: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubScal hoc_scdoub[] = { | ^ 138 | 0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:140:31: warning: missing braces around initializer [-Wmissing-braces] 140 | static DoubVec hoc_vdoub[] = { | ^ 141 | 0,0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:166:15: warning: unused variable 'prop_ion' [-Wunused-variable] 166 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_pattern_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:198:13: warning: unused variable '_vectorized' [-Wunused-variable] 198 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:18: warning: unused variable '_save' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:7: warning: unused variable '_i' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_init__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:19: warning: unused variable '_v' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:7: warning: unused variable '_nd' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_state__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:426:6: warning: unused variable '_i' [-Wunused-variable] 426 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:423:13: warning: 'terminal' defined but not used [-Wunused-function] 423 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:30:19: warning: '_nrn_state__PatternStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:408:13: note: in expansion of macro 'nrn_state' 408 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:28:22: warning: '_nrn_current__PatternStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:404:15: note: in expansion of macro '_nrn_current' 404 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:230:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 230 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:227:12: warning: 'error' defined but not used [-Wunused-variable] 227 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:225:14: warning: 'modelname' defined but not used [-Wunused-variable] 225 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:224:12: warning: '_reset' defined but not used [-Wunused-variable] 224 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:143:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 143 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:182:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 182 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:123:34: warning: missing braces around initializer [-Wmissing-braces] 123 | static VoidFunc hoc_intfunc[] = { | ^ 124 | 0,0 | { 125 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:126:38: warning: missing braces around initializer [-Wmissing-braces] 126 | static Member_func _member_func[] = { | ^ 127 | "loc", _hoc_loc_pnt, | { } 128 | "has_loc", _hoc_has_loc, | { } 129 | "get_loc", _hoc_get_loc_pnt, | { } 130 | "icur", _hoc_icur, | { } 131 | "vstim", _hoc_vstim, | { } 132 | 0, 0 | { 133 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:136:44: warning: missing braces around initializer [-Wmissing-braces] 136 | static HocParmLimits _hoc_parm_limits[] = { | ^ 137 | "dur3", 0, 1e+09, | { { }} 138 | "dur2", 0, 1e+09, | { { }} 139 | "rs", 1e-09, 1e+09, | { { }} 140 | 0,0,0 | { { 141 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:142:42: warning: missing braces around initializer [-Wmissing-braces] 142 | static HocParmUnits _hoc_parm_units[] = { | ^ 143 | "rs", "megohm", | { } 144 | "dur1", "ms", | { } 145 | "amp1", "mV", | { } 146 | "dur2", "ms", | { } 147 | "amp2", "mV", | { } 148 | "dur3", "ms", | { } 149 | "amp3", "mV", | { } 150 | "i", "nA", | { } 151 | "vc", "mV", | { } 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:156:33: warning: missing braces around initializer [-Wmissing-braces] 156 | static DoubScal hoc_scdoub[] = { | ^ 157 | 0,0 | { 158 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:159:31: warning: missing braces around initializer [-Wmissing-braces] 159 | static DoubVec hoc_vdoub[] = { | ^ 160 | 0,0,0 | { 161 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_svclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:226:13: warning: unused variable '_vectorized' [-Wunused-variable] 226 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:18: warning: unused variable '_save' [-Wunused-variable] 317 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:7: warning: unused variable '_i' [-Wunused-variable] 317 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_nrn_jacob__SEClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:20: warning: unused variable '_ppvar' [-Wunused-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:488:6: warning: unused variable '_i' [-Wunused-variable] 488 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:487:21: warning: unused variable '_p' [-Wunused-variable] 487 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:484:13: warning: 'terminal' defined but not used [-Wunused-function] 484 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:252:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 252 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:250:12: warning: '_ninits' defined but not used [-Wunused-variable] 250 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:249:12: warning: 'error' defined but not used [-Wunused-variable] 249 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:247:14: warning: 'modelname' defined but not used [-Wunused-variable] 247 | static char *modelname = "svclmp.mod"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:246:12: warning: '_reset' defined but not used [-Wunused-variable] 246 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:162:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 162 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:154:16: warning: 'delta_t' defined but not used [-Wunused-variable] 154 | static double delta_t = 1; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:118:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 118 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:214:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 214 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/ACG.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Binomial.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/DiscUnif.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Complex.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Erlang.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Geom.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/HypGeom.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/LogNorm.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/MLCG.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/NegExp.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Normal.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Poisson.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/RNG.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Random.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' In file included from /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:93:8: warning: when initialized here [-Wreorder] 93 | inline RandomInteger::RandomInteger(long low, long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:99:8: warning: when initialized here [-Wreorder] 99 | inline RandomInteger::RandomInteger(long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:106:8: warning: when initialized here [-Wreorder] 106 | inline RandomInteger::RandomInteger(RNG *gen) | ^~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplStat.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Uniform.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/builtin.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Weibull.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/d_vec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c: In function 'abort_run': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c:50:10: warning: unused variable 'tmpstr' [-Wunused-variable] 50 | char tmpstr[4]; | ^~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/d_avec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adams.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adams.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adeuler.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adeuler.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adrunge.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adrunge.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/advance.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/advance.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/boundary.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/boundary.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crank.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crank.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c: In function 'clsoda': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:52:20: warning: unused variable 'iout' [-Wunused-variable] 52 | static integer iout; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:44:13: warning: unused variable 'i' [-Wunused-variable] 44 | int i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:52:20: warning: 'iout' defined but not used [-Wunused-variable] 52 | static integer iout; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/deflate.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/deflate.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c: In function 'derivimplicit': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c:22:9: warning: unused variable 'i' [-Wunused-variable] 22 | int i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/scoperf.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/scoperf.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/euler.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/euler.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/expfit.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/expfit.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/exprand.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/exprand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2cmisc.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2cmisc.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/factoria.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/factoria.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:44:16: warning: 'laststep' defined but not used [-Wunused-variable] 44 | static Spline *laststep = SP0;/* the step list used on previous call */ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:42:16: warning: 'steplist' defined but not used [-Wunused-variable] 42 | static Spline *steplist = SP0; /* list of steps */ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:17:13: warning: 'RCSid' defined but not used [-Wunused-variable] 17 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gauss.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gauss.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gear.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gear.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/getmem.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/getmem.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/harmonic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/harmonic.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/heun.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/heun.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/hyperbol.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/hyperbol.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/invert.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/invert.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/lag.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/lag.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/legendre.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/legendre.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:104:17: warning: missing braces around initializer [-Wmissing-braces] 104 | } eh0001_ = { 1, 6 }; | ^ | { } /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'lsoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2489:9: note: in expansion of macro 'ls0001_1' 2489 | if (ls0001_1.init == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2497:5: note: in expansion of macro 'ls0001_1' 2497 | ls0001_1.init = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2502:5: note: in expansion of macro 'ls0001_1' 2502 | ls0001_1.ntrep = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2520:18: note: in expansion of macro 'ls0001_1' 2520 | if (neq[1] > ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2524:5: note: in expansion of macro 'ls0001_1' 2524 | ls0001_1.n = neq[1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2540:25: note: in expansion of macro 'ls0001_1' 2540 | if (ml < 0 || ml >= ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2543:25: note: in expansion of macro 'ls0001_1' 2543 | if (mu < 0 || mu >= ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2553:5: note: in expansion of macro 'ls0001_1' 2553 | ls0001_1.mxstep = mxstp0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2554:5: note: in expansion of macro 'ls0001_1' 2554 | ls0001_1.mxhnil = mxhnl0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2555:5: note: in expansion of macro 'ls0001_1' 2555 | ls0001_1.hmxi = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2556:5: note: in expansion of macro 'ls0001_1' 2556 | ls0001_1.hmin = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2569:5: note: in expansion of macro 'ls0001_1' 2569 | ls0001_1.mxstep = iwork[6]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2570:9: note: in expansion of macro 'ls0001_1' 2570 | if (ls0001_1.mxstep < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2573:9: note: in expansion of macro 'ls0001_1' 2573 | if (ls0001_1.mxstep == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2574:9: note: in expansion of macro 'ls0001_1' 2574 | ls0001_1.mxstep = mxstp0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2576:5: note: in expansion of macro 'ls0001_1' 2576 | ls0001_1.mxhnil = iwork[7]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2577:9: note: in expansion of macro 'ls0001_1' 2577 | if (ls0001_1.mxhnil < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2580:9: note: in expansion of macro 'ls0001_1' 2580 | if (ls0001_1.mxhnil == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2581:9: note: in expansion of macro 'ls0001_1' 2581 | ls0001_1.mxhnil = mxhnl0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2611:5: note: in expansion of macro 'ls0001_1' 2611 | ls0001_1.hmxi = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2613:9: note: in expansion of macro 'ls0001_1' 2613 | ls0001_1.hmxi = 1. / hmax; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2615:5: note: in expansion of macro 'ls0001_1' 2615 | ls0001_1.hmin = rwork[7]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2616:9: note: in expansion of macro 'ls0001_1' 2616 | if (ls0001_1.hmin < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2637:9: note: in expansion of macro 'ls0001_1' 2637 | ls0001_1.meth = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2640:9: note: in expansion of macro 'ls0001_1' 2640 | ls0001_1.nyh = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2640:24: note: in expansion of macro 'ls0001_1' 2640 | ls0001_1.nyh = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2642:5: note: in expansion of macro 'ls0001_1' 2642 | ls0001_1.lyh = 21; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2643:37: note: in expansion of macro 'ls0001_1' 2643 | len1n = (lsa001_1.mxordn + 1) * ls0001_1.nyh + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2644:37: note: in expansion of macro 'ls0001_1' 2644 | len1s = (lsa001_1.mxords + 1) * ls0001_1.nyh + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2645:5: note: in expansion of macro 'ls0001_1' 2645 | ls0001_1.lwm = len1s + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2647:17: note: in expansion of macro 'ls0001_1' 2647 | lenwm = ls0001_1.n * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2647:30: note: in expansion of macro 'ls0001_1' 2647 | lenwm = ls0001_1.n * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2650:40: note: in expansion of macro 'ls0001_1' 2650 | lenwm = ((ml << 1) + mu + 1) * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2654:9: note: in expansion of macro 'ls0001_1' 2654 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2658:12: note: in expansion of macro 'ls0001_1' 2658 | len2 = ls0001_1.n * 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2664:5: note: in expansion of macro 'ls0001_1' 2664 | ls0001_1.liwm = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2665:13: note: in expansion of macro 'ls0001_1' 2665 | leniw = ls0001_1.n + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2667:9: note: in expansion of macro 'ls0001_1' 2667 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2683:5: note: in expansion of macro 'ls0001_1' 2683 | ls0001_1.lewt = len1 + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2689:5: note: in expansion of macro 'ls0001_1' 2689 | ls0001_1.lewt = len1c + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:5: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:22: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:38: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:5: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:22: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:39: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2719:11: note: in expansion of macro 'ls0001_1' 2719 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2740:5: note: in expansion of macro 'ls0001_1' 2740 | ls0001_1.jstart = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2741:9: note: in expansion of macro 'ls0001_1' 2741 | if (ls0001_1.n == ls0001_1.nyh) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2741:23: note: in expansion of macro 'ls0001_1' 2741 | if (ls0001_1.n == ls0001_1.nyh) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:10: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:25: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:38: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:10: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:26: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:49: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2767:5: note: in expansion of macro 'ls0001_1' 2767 | ls0001_1.uround = d1mach_(&c__4); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2768:5: note: in expansion of macro 'ls0001_1' 2768 | ls0001_1.tn = *t; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2770:5: note: in expansion of macro 'ls0001_1' 2770 | ls0001_1.maxord = lsa001_1.mxordn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2782:5: note: in expansion of macro 'ls0001_1' 2782 | ls0001_1.jstart = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2783:5: note: in expansion of macro 'ls0001_1' 2783 | ls0001_1.nhnil = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2784:5: note: in expansion of macro 'ls0001_1' 2784 | ls0001_1.nst = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2785:5: note: in expansion of macro 'ls0001_1' 2785 | ls0001_1.nje = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2786:5: note: in expansion of macro 'ls0001_1' 2786 | ls0001_1.nslast = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2787:5: note: in expansion of macro 'ls0001_1' 2787 | ls0001_1.hu = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2788:5: note: in expansion of macro 'ls0001_1' 2788 | ls0001_1.nqu = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2790:5: note: in expansion of macro 'ls0001_1' 2790 | ls0001_1.miter = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2791:5: note: in expansion of macro 'ls0001_1' 2791 | ls0001_1.ccmax = .3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2792:5: note: in expansion of macro 'ls0001_1' 2792 | ls0001_1.maxcor = 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2793:5: note: in expansion of macro 'ls0001_1' 2793 | ls0001_1.msbp = 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2794:5: note: in expansion of macro 'ls0001_1' 2794 | ls0001_1.mxncf = 10; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2797:11: note: in expansion of macro 'ls0001_1' 2797 | lf0 = ls0001_1.lyh + ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2797:26: note: in expansion of macro 'ls0001_1' 2797 | lf0 = ls0001_1.lyh + ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2799:5: note: in expansion of macro 'ls0001_1' 2799 | ls0001_1.nfe = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2802:11: note: in expansion of macro 'ls0001_1' 2802 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2805:19: note: in expansion of macro 'ls0001_1' 2805 | rwork[i + ls0001_1.lyh - 1] = y[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2809:5: note: in expansion of macro 'ls0001_1' 2809 | ls0001_1.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2810:5: note: in expansion of macro 'ls0001_1' 2810 | ls0001_1.h = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:13: note: in expansion of macro 'ls0001_1' 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:58: note: in expansion of macro 'ls0001_1' 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2812:19: note: in expansion of macro 'ls0001_1' 2812 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2813:11: note: in expansion of macro 'ls0001_1' 2813 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2815:23: note: in expansion of macro 'ls0001_1' 2815 | if (rwork[i + ls0001_1.lewt - 1] <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2819:19: note: in expansion of macro 'ls0001_1' 2819 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2819:55: note: in expansion of macro 'ls0001_1' 2819 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2849:17: note: in expansion of macro 'ls0001_1' 2849 | if (tdist < ls0001_1.uround * 2. * w0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2856:11: note: in expansion of macro 'ls0001_1' 2856 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2868:11: note: in expansion of macro 'ls0001_1' 2868 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2883:22: note: in expansion of macro 'ls0001_1' 2883 | d_1 = tol, d_2 = ls0001_1.uround * 100.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:20: note: in expansion of macro 'ls0001_1' 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:52: note: in expansion of macro 'ls0001_1' 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2897:20: note: in expansion of macro 'ls0001_1' 2897 | rh = abs(h0) * ls0001_1.hmxi; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2903:5: note: in expansion of macro 'ls0001_1' 2903 | ls0001_1.h = h0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2904:11: note: in expansion of macro 'ls0001_1' 2904 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2919:5: note: in expansion of macro 'ls0001_1' 2919 | ls0001_1.nslast = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2919:23: note: in expansion of macro 'ls0001_1' 2919 | ls0001_1.nslast = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2928:10: note: in expansion of macro 'ls0001_1' 2928 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2928:33: note: in expansion of macro 'ls0001_1' 2928 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2931:32: note: in expansion of macro 'ls0001_1' 2931 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2931:48: note: in expansion of macro 'ls0001_1' 2931 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:10: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:24: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:39: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2939:24: note: in expansion of macro 'ls0001_1' 2939 | if ((tp - *tout) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2942:10: note: in expansion of macro 'ls0001_1' 2942 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2942:33: note: in expansion of macro 'ls0001_1' 2942 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2945:10: note: in expansion of macro 'ls0001_1' 2945 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2949:10: note: in expansion of macro 'ls0001_1' 2949 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2949:33: note: in expansion of macro 'ls0001_1' 2949 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2952:27: note: in expansion of macro 'ls0001_1' 2952 | if ((tcrit - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2955:10: note: in expansion of macro 'ls0001_1' 2955 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2955:33: note: in expansion of macro 'ls0001_1' 2955 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2958:32: note: in expansion of macro 'ls0001_1' 2958 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2958:48: note: in expansion of macro 'ls0001_1' 2958 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2966:10: note: in expansion of macro 'ls0001_1' 2966 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2966:33: note: in expansion of macro 'ls0001_1' 2966 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2971:19: note: in expansion of macro 'ls0001_1' 2971 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2971:53: note: in expansion of macro 'ls0001_1' 2971 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:13: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:27: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:41: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2980:27: note: in expansion of macro 'ls0001_1' 2980 | if ((tnext - tcrit) * ls0001_1.h <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:5: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:27: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:48: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2985:9: note: in expansion of macro 'ls0001_1' 2985 | ls0001_1.jstart = -2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3001:9: note: in expansion of macro 'ls0001_1' 3001 | if (ls0001_1.meth == lsa001_1.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:9: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:24: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:43: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:13: note: in expansion of macro 'ls0001_1' 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:58: note: in expansion of macro 'ls0001_1' 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3015:19: note: in expansion of macro 'ls0001_1' 3015 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3016:11: note: in expansion of macro 'ls0001_1' 3016 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3018:23: note: in expansion of macro 'ls0001_1' 3018 | if (rwork[i + ls0001_1.lewt - 1] <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3022:19: note: in expansion of macro 'ls0001_1' 3022 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3022:55: note: in expansion of macro 'ls0001_1' 3022 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:13: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:40: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:59: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3026:19: note: in expansion of macro 'ls0001_1' 3026 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3031:9: note: in expansion of macro 'ls0001_1' 3031 | if (ls0001_1.nst == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:9: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:23: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:37: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3039:7: note: in expansion of macro 'ls0001_1' 3039 | ++ls0001_1.nhnil; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3040:9: note: in expansion of macro 'ls0001_1' 3040 | if (ls0001_1.nhnil > ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3040:26: note: in expansion of macro 'ls0001_1' 3040 | if (ls0001_1.nhnil > ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3050:57: note: in expansion of macro 'ls0001_1' 3050 | c__101, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3051:13: note: in expansion of macro 'ls0001_1' 3051 | ls0001_1.h, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3052:9: note: in expansion of macro 'ls0001_1' 3052 | if (ls0001_1.nhnil < ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3052:26: note: in expansion of macro 'ls0001_1' 3052 | if (ls0001_1.nhnil < ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3059:36: note: in expansion of macro 'ls0001_1' 3059 | c__102, &c__0, &c__1, &ls0001_1.mxhnil, &c__0, &c__0, &c_b136, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3068:35: note: in expansion of macro 'ls0001_1' 3068 | stoda_(&neq[1], &y[1], &rwork[ls0001_1.lyh], &ls0001_1.nyh, &rwork[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3068:51: note: in expansion of macro 'ls0001_1' 3068 | stoda_(&neq[1], &y[1], &rwork[ls0001_1.lyh], &ls0001_1.nyh, &rwork[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:13: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:35: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:58: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:19: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:43: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:65: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3072:15: note: in expansion of macro 'ls0001_1' 3072 | kgo = 1 - ls0001_1.kflag; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3091:5: note: in expansion of macro 'ls0001_1' 3091 | ls0001_1.init = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3092:9: note: in expansion of macro 'ls0001_1' 3092 | if (ls0001_1.meth == lsa001_1.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3095:20: note: in expansion of macro 'ls0001_1' 3095 | lsa001_1.tsw = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3096:5: note: in expansion of macro 'ls0001_1' 3096 | ls0001_1.maxord = lsa001_1.mxordn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3097:9: note: in expansion of macro 'ls0001_1' 3097 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3098:9: note: in expansion of macro 'ls0001_1' 3098 | ls0001_1.maxord = lsa001_1.mxords; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3100:9: note: in expansion of macro 'ls0001_1' 3100 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3101:15: note: in expansion of macro 'ls0001_1' 3101 | rwork[ls0001_1.lwm] = sqrt(ls0001_1.uround); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3101:36: note: in expansion of macro 'ls0001_1' 3101 | rwork[ls0001_1.lwm] = sqrt(ls0001_1.uround); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3105:5: note: in expansion of macro 'ls0001_1' 3105 | ls0001_1.jstart = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3109:9: note: in expansion of macro 'ls0001_1' 3109 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3114:9: note: in expansion of macro 'ls0001_1' 3114 | if (ls0001_1.meth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3120:44: note: in expansion of macro 'ls0001_1' 3120 | c__60, &c__107, &c__0, &c__1, &ls0001_1.nst, &c__0, &c__2, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3121:13: note: in expansion of macro 'ls0001_1' 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3121:27: note: in expansion of macro 'ls0001_1' 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3133:10: note: in expansion of macro 'ls0001_1' 3133 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3133:33: note: in expansion of macro 'ls0001_1' 3133 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3136:32: note: in expansion of macro 'ls0001_1' 3136 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3136:48: note: in expansion of macro 'ls0001_1' 3136 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3142:10: note: in expansion of macro 'ls0001_1' 3142 | if ((ls0001_1.tn - *tout) * ls0001_1.h >= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3142:33: note: in expansion of macro 'ls0001_1' 3142 | if ((ls0001_1.tn - *tout) * ls0001_1.h >= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3149:10: note: in expansion of macro 'ls0001_1' 3149 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3149:33: note: in expansion of macro 'ls0001_1' 3149 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3152:32: note: in expansion of macro 'ls0001_1' 3152 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3152:48: note: in expansion of macro 'ls0001_1' 3152 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3157:19: note: in expansion of macro 'ls0001_1' 3157 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3157:53: note: in expansion of macro 'ls0001_1' 3157 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:13: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:27: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:41: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3163:27: note: in expansion of macro 'ls0001_1' 3163 | if ((tnext - tcrit) * ls0001_1.h <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:5: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:27: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:48: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3167:5: note: in expansion of macro 'ls0001_1' 3167 | ls0001_1.jstart = -2; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3173:19: note: in expansion of macro 'ls0001_1' 3173 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3173:53: note: in expansion of macro 'ls0001_1' 3173 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3187:11: note: in expansion of macro 'ls0001_1' 3187 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3190:26: note: in expansion of macro 'ls0001_1' 3190 | y[i] = rwork[i + ls0001_1.lyh - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3192:10: note: in expansion of macro 'ls0001_1' 3192 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3201:5: note: in expansion of macro 'ls0001_1' 3201 | ls0001_1.illin = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3202:17: note: in expansion of macro 'ls0001_1' 3202 | rwork[11] = ls0001_1.hu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3203:17: note: in expansion of macro 'ls0001_1' 3203 | rwork[12] = ls0001_1.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3204:17: note: in expansion of macro 'ls0001_1' 3204 | rwork[13] = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3206:17: note: in expansion of macro 'ls0001_1' 3206 | iwork[11] = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3207:17: note: in expansion of macro 'ls0001_1' 3207 | iwork[12] = ls0001_1.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3208:17: note: in expansion of macro 'ls0001_1' 3208 | iwork[13] = ls0001_1.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3209:17: note: in expansion of macro 'ls0001_1' 3209 | iwork[14] = ls0001_1.nqu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3210:17: note: in expansion of macro 'ls0001_1' 3210 | iwork[15] = ls0001_1.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3212:17: note: in expansion of macro 'ls0001_1' 3212 | iwork[20] = ls0001_1.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3216:7: note: in expansion of macro 'ls0001_1' 3216 | ++ls0001_1.ntrep; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3217:9: note: in expansion of macro 'ls0001_1' 3217 | if (ls0001_1.ntrep < 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3244:36: note: in expansion of macro 'ls0001_1' 3244 | c__201, &c__0, &c__1, &ls0001_1.mxstep, &c__0, &c__1, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3245:13: note: in expansion of macro 'ls0001_1' 3245 | ls0001_1.tn, &c_b136, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3251:18: note: in expansion of macro 'ls0001_1' 3251 | ewti = rwork[ls0001_1.lewt + i - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3253:54: note: in expansion of macro 'ls0001_1' 3253 | c__202, &c__0, &c__1, &i, &c__0, &c__2, &ls0001_1.tn, &ewti, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3264:57: note: in expansion of macro 'ls0001_1' 3264 | c__203, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, &tolsf, | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3276:57: note: in expansion of macro 'ls0001_1' 3276 | c__204, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3277:13: note: in expansion of macro 'ls0001_1' 3277 | ls0001_1.h, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3290:34: note: in expansion of macro 'ls0001_1' 3290 | c__0, &c__0, &c__2, &ls0001_1.tn, &ls0001_1.h, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3290:48: note: in expansion of macro 'ls0001_1' 3290 | c__0, &c__0, &c__2, &ls0001_1.tn, &ls0001_1.h, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3300:65: note: in expansion of macro 'ls0001_1' 3300 | c__60, &c__206, &c__0, &c__0, &c__0, &c__0, &c__1, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3311:65: note: in expansion of macro 'ls0001_1' 3311 | c__60, &c__207, &c__0, &c__0, &c__0, &c__0, &c__1, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3320:11: note: in expansion of macro 'ls0001_1' 3320 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3322:33: note: in expansion of macro 'ls0001_1' 3322 | size = (d_1 = rwork[i + ls0001_1.lacor - 1] * rwork[i + ls0001_1.lewt | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3322:65: note: in expansion of macro 'ls0001_1' 3322 | size = (d_1 = rwork[i + ls0001_1.lacor - 1] * rwork[i + ls0001_1.lewt | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3336:11: note: in expansion of macro 'ls0001_1' 3336 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3339:26: note: in expansion of macro 'ls0001_1' 3339 | y[i] = rwork[i + ls0001_1.lyh - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3341:10: note: in expansion of macro 'ls0001_1' 3341 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3342:5: note: in expansion of macro 'ls0001_1' 3342 | ls0001_1.illin = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3343:17: note: in expansion of macro 'ls0001_1' 3343 | rwork[11] = ls0001_1.hu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3344:17: note: in expansion of macro 'ls0001_1' 3344 | rwork[12] = ls0001_1.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3345:17: note: in expansion of macro 'ls0001_1' 3345 | rwork[13] = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3347:17: note: in expansion of macro 'ls0001_1' 3347 | iwork[11] = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3348:17: note: in expansion of macro 'ls0001_1' 3348 | iwork[12] = ls0001_1.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3349:17: note: in expansion of macro 'ls0001_1' 3349 | iwork[13] = ls0001_1.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3350:17: note: in expansion of macro 'ls0001_1' 3350 | iwork[14] = ls0001_1.nqu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3351:17: note: in expansion of macro 'ls0001_1' 3351 | iwork[15] = ls0001_1.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3353:17: note: in expansion of macro 'ls0001_1' 3353 | iwork[20] = ls0001_1.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3383:34: note: in expansion of macro 'ls0001_1' 3383 | c__5, &c__0, &c__2, &ls0001_1.n, &neq[1], &c__0, &c_b136, &c_b136, | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3412:13: note: in expansion of macro 'ls0001_1' 3412 | ls0001_1.mxstep, &c__0, &c__0, &c_b136, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3416:13: note: in expansion of macro 'ls0001_1' 3416 | ls0001_1.mxhnil, &c__0, &c__0, &c_b136, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3430:34: note: in expansion of macro 'ls0001_1' 3430 | c__0, &c__0, &c__1, &ls0001_1.hmin, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3451:18: note: in expansion of macro 'ls0001_1' 3451 | ewti = rwork[ls0001_1.lewt + i - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3467:13: note: in expansion of macro 'ls0001_1' 3467 | ls0001_1.tn, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3495:9: note: in expansion of macro 'ls0001_1' 3495 | if (ls0001_1.illin == 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3498:7: note: in expansion of macro 'ls0001_1' 3498 | ++ls0001_1.illin; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:1461:49: warning: variable 'lenrws' set but not used [-Wunused-but-set-variable] 1461 | static integer leniwc, lenrwc, lf0, lenrwn, lenrws; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:1461:41: warning: variable 'lenrwn' set but not used [-Wunused-but-set-variable] 1461 | static integer leniwc, lenrwc, lf0, lenrwn, lenrws; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'prja_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3597:7: note: in expansion of macro 'ls0001_2' 3597 | ++ls0001_2.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3598:5: note: in expansion of macro 'ls0001_2' 3598 | ls0001_2.ierpj = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3599:5: note: in expansion of macro 'ls0001_2' 3599 | ls0001_2.jcur = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3600:11: note: in expansion of macro 'ls0001_2' 3600 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3600:24: note: in expansion of macro 'ls0001_2' 3600 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3601:18: note: in expansion of macro 'ls0001_2' 3601 | switch ((int)ls0001_2.miter) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3611:12: note: in expansion of macro 'ls0001_2' 3611 | lenp = ls0001_2.n * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3611:25: note: in expansion of macro 'ls0001_2' 3611 | lenp = ls0001_2.n * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:22: note: in expansion of macro 'ls0001_2' 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:65: note: in expansion of macro 'ls0001_2' 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3628:20: note: in expansion of macro 'ls0001_2' 3628 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:34: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:65: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3636:11: note: in expansion of macro 'ls0001_2' 3636 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3644:24: note: in expansion of macro 'ls0001_2' 3644 | (*f)(&neq[1], &ls0001_2.tn, &y[1], &ftem[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3645:15: note: in expansion of macro 'ls0001_2' 3645 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3651:15: note: in expansion of macro 'ls0001_2' 3651 | j1 += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:5: note: in expansion of macro 'ls0001_2' 3654 | ls0001_2.nfe += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:21: note: in expansion of macro 'ls0001_2' 3654 | ls0001_2.nfe += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3658:31: note: in expansion of macro 'ls0001_2' 3658 | lsa001_2.pdnorm = fnorm_(&ls0001_2.n, &wm[3], &ewt[1]) / abs(hl0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3661:11: note: in expansion of macro 'ls0001_2' 3661 | np1 = ls0001_2.n + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3663:11: note: in expansion of macro 'ls0001_2' 3663 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3671:21: note: in expansion of macro 'ls0001_2' 3671 | dgefa_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3671:34: note: in expansion of macro 'ls0001_2' 3671 | dgefa_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3673:9: note: in expansion of macro 'ls0001_2' 3673 | ls0001_2.ierpj = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3688:21: note: in expansion of macro 'ls0001_2' 3688 | lenp = meband * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3694:22: note: in expansion of macro 'ls0001_2' 3694 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &ml, &mu, &wm[ml3], &meband); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3708:21: note: in expansion of macro 'ls0001_2' 3708 | mba = min(mband,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3708:21: note: in expansion of macro 'ls0001_2' 3708 | mba = min(mband,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3712:20: note: in expansion of macro 'ls0001_2' 3712 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:34: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:65: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3720:15: note: in expansion of macro 'ls0001_2' 3720 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3730:24: note: in expansion of macro 'ls0001_2' 3730 | (*f)(&neq[1], &ls0001_2.tn, &y[1], &ftem[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3731:15: note: in expansion of macro 'ls0001_2' 3731 | i_3 = ls0001_2.n; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3745:26: note: in expansion of macro 'ls0001_2' 3745 | i2 = min(i_4,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3745:26: note: in expansion of macro 'ls0001_2' 3745 | i2 = min(i_4,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:5: note: in expansion of macro 'ls0001_2' 3756 | ls0001_2.nfe += mba; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3760:31: note: in expansion of macro 'ls0001_2' 3760 | lsa001_2.pdnorm = bnorm_(&ls0001_2.n, &wm[3], &meband, &ml, &mu, &ewt[1]) | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3765:11: note: in expansion of macro 'ls0001_2' 3765 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3773:30: note: in expansion of macro 'ls0001_2' 3773 | dgbfa_(&wm[3], &meband, &ls0001_2.n, &ml, &mu, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3775:9: note: in expansion of macro 'ls0001_2' 3775 | ls0001_2.ierpj = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'solsy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3835:5: note: in expansion of macro 'ls0001_2' 3835 | ls0001_2.iersl = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3836:18: note: in expansion of macro 'ls0001_2' 3836 | switch ((int)ls0001_2.miter) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3844:21: note: in expansion of macro 'ls0001_2' 3844 | dgesl_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3844:34: note: in expansion of macro 'ls0001_2' 3844 | dgesl_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3849:11: note: in expansion of macro 'ls0001_2' 3849 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3849:24: note: in expansion of macro 'ls0001_2' 3849 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3855:11: note: in expansion of macro 'ls0001_2' 3855 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3865:11: note: in expansion of macro 'ls0001_2' 3865 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3872:5: note: in expansion of macro 'ls0001_2' 3872 | ls0001_2.iersl = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3879:30: note: in expansion of macro 'ls0001_2' 3879 | dgbsl_(&wm[3], &meband, &ls0001_2.n, &ml, &mu, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'stoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3958:5: note: in expansion of macro 'ls0001_3' 3958 | ls0001_3.kflag = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3959:12: note: in expansion of macro 'ls0001_3' 3959 | told = ls0001_3.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3961:5: note: in expansion of macro 'ls0001_3' 3961 | ls0001_3.ierpj = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3962:5: note: in expansion of macro 'ls0001_3' 3962 | ls0001_3.iersl = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3963:5: note: in expansion of macro 'ls0001_3' 3963 | ls0001_3.jcur = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3964:5: note: in expansion of macro 'ls0001_3' 3964 | ls0001_3.icf = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3966:9: note: in expansion of macro 'ls0001_3' 3966 | if (ls0001_3.jstart > 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3969:9: note: in expansion of macro 'ls0001_3' 3969 | if (ls0001_3.jstart == -1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3972:9: note: in expansion of macro 'ls0001_3' 3972 | if (ls0001_3.jstart == -2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3986:5: note: in expansion of macro 'ls0001_3' 3986 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3986:21: note: in expansion of macro 'ls0001_3' 3986 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3987:5: note: in expansion of macro 'ls0001_3' 3987 | ls0001_3.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3988:5: note: in expansion of macro 'ls0001_3' 3988 | ls0001_3.l = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3989:5: note: in expansion of macro 'ls0001_3' 3989 | ls0001_3.ialth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3990:5: note: in expansion of macro 'ls0001_3' 3990 | ls0001_3.rmax = 1e4; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3991:5: note: in expansion of macro 'ls0001_3' 3991 | ls0001_3.rc = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3992:5: note: in expansion of macro 'ls0001_3' 3992 | ls0001_3.el0 = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3993:5: note: in expansion of macro 'ls0001_3' 3993 | ls0001_3.crate = .7; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3994:5: note: in expansion of macro 'ls0001_3' 3994 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3994:21: note: in expansion of macro 'ls0001_3' 3994 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3995:5: note: in expansion of macro 'ls0001_3' 3995 | ls0001_3.nslp = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3996:5: note: in expansion of macro 'ls0001_3' 3996 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3996:21: note: in expansion of macro 'ls0001_3' 3996 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4005:19: note: in expansion of macro 'ls0001_3' 4005 | cfode_(&c__2, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4005:34: note: in expansion of macro 'ls0001_3' 4005 | cfode_(&c__2, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4008:31: note: in expansion of macro 'ls0001_3' 4008 | lsa001_3.cm2[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4008:59: note: in expansion of macro 'ls0001_3' 4008 | lsa001_3.cm2[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4011:19: note: in expansion of macro 'ls0001_3' 4011 | cfode_(&c__1, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4011:34: note: in expansion of macro 'ls0001_3' 4011 | cfode_(&c__1, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4014:31: note: in expansion of macro 'ls0001_3' 4014 | lsa001_3.cm1[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4014:59: note: in expansion of macro 'ls0001_3' 4014 | lsa001_3.cm1[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4032:5: note: in expansion of macro 'ls0001_3' 4032 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4032:21: note: in expansion of macro 'ls0001_3' 4032 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4033:5: note: in expansion of macro 'ls0001_3' 4033 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4033:21: note: in expansion of macro 'ls0001_3' 4033 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4034:9: note: in expansion of macro 'ls0001_3' 4034 | if (ls0001_3.ialth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4035:9: note: in expansion of macro 'ls0001_3' 4035 | ls0001_3.ialth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4037:9: note: in expansion of macro 'ls0001_3' 4037 | if (ls0001_3.meth == lsa001_3.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:13: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:28: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:43: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4041:5: note: in expansion of macro 'ls0001_3' 4041 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4041:22: note: in expansion of macro 'ls0001_3' 4041 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4050:11: note: in expansion of macro 'ls0001_3' 4050 | i_1 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:9: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:30: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:48: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4055:5: note: in expansion of macro 'ls0001_3' 4055 | ls0001_3.nqnyh = ls0001_3.nq * *nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4055:22: note: in expansion of macro 'ls0001_3' 4055 | ls0001_3.nqnyh = ls0001_3.nq * *nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:5: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:19: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:33: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:50: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4057:5: note: in expansion of macro 'ls0001_3' 4057 | ls0001_3.el0 = ls0001_3.el[0]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4057:20: note: in expansion of macro 'ls0001_3' 4057 | ls0001_3.el0 = ls0001_3.el[0]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4058:5: note: in expansion of macro 'ls0001_3' 4058 | ls0001_3.conit = .5 / (doublereal) (ls0001_3.nq + 2); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4058:41: note: in expansion of macro 'ls0001_3' 4058 | ls0001_3.conit = .5 / (doublereal) (ls0001_3.nq + 2); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4073:9: note: in expansion of macro 'ls0001_3' 4073 | if (ls0001_3.h == ls0001_3.hold) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4073:23: note: in expansion of macro 'ls0001_3' 4073 | if (ls0001_3.h == ls0001_3.hold) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4076:10: note: in expansion of macro 'ls0001_3' 4076 | rh = ls0001_3.h / ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4076:23: note: in expansion of macro 'ls0001_3' 4076 | rh = ls0001_3.h / ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4077:5: note: in expansion of macro 'ls0001_3' 4077 | ls0001_3.h = ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4077:18: note: in expansion of macro 'ls0001_3' 4077 | ls0001_3.h = ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:21: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4085:17: note: in expansion of macro 'ls0001_3' 4085 | rh = min(rh,ls0001_3.rmax); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4085:17: note: in expansion of macro 'ls0001_3' 4085 | rh = min(rh,ls0001_3.rmax); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:39: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4097:9: note: in expansion of macro 'ls0001_3' 4097 | if (ls0001_3.meth == 2) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4104:34: note: in expansion of macro 'ls0001_3' 4104 | if (rh * pdh * 1.00001 < sm1[ls0001_3.nq - 1]) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4107:14: note: in expansion of macro 'ls0001_3' 4107 | rh = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4111:11: note: in expansion of macro 'ls0001_3' 4111 | i_1 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4114:15: note: in expansion of macro 'ls0001_3' 4114 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:5: note: in expansion of macro 'ls0001_3' 4120 | ls0001_3.h *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:5: note: in expansion of macro 'ls0001_3' 4121 | ls0001_3.rc *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4122:5: note: in expansion of macro 'ls0001_3' 4122 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4122:22: note: in expansion of macro 'ls0001_3' 4122 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4137:16: note: in expansion of macro 'ls0001_3' 4137 | if ((d_1 = ls0001_3.rc - 1., abs(d_1)) > ls0001_3.ccmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4137:46: note: in expansion of macro 'ls0001_3' 4137 | if ((d_1 = ls0001_3.rc - 1., abs(d_1)) > ls0001_3.ccmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4138:9: note: in expansion of macro 'ls0001_3' 4138 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4138:25: note: in expansion of macro 'ls0001_3' 4138 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:9: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:25: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:41: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4141:9: note: in expansion of macro 'ls0001_3' 4141 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4141:25: note: in expansion of macro 'ls0001_3' 4141 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:5: note: in expansion of macro 'ls0001_3' 4143 | ls0001_3.tn += ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:20: note: in expansion of macro 'ls0001_3' 4143 | ls0001_3.tn += ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4144:10: note: in expansion of macro 'ls0001_3' 4144 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4145:11: note: in expansion of macro 'ls0001_3' 4145 | i_2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4149:15: note: in expansion of macro 'ls0001_3' 4149 | i_1 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4156:22: note: in expansion of macro 'ls0001_3' 4156 | pnorm = vmnorm_(&ls0001_3.n, &yh1[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4170:11: note: in expansion of macro 'ls0001_3' 4170 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4175:20: note: in expansion of macro 'ls0001_3' 4175 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4176:7: note: in expansion of macro 'ls0001_3' 4176 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4177:9: note: in expansion of macro 'ls0001_3' 4177 | if (ls0001_3.ipup <= 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4189:5: note: in expansion of macro 'ls0001_3' 4189 | ls0001_3.ipup = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4190:5: note: in expansion of macro 'ls0001_3' 4190 | ls0001_3.rc = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4191:5: note: in expansion of macro 'ls0001_3' 4191 | ls0001_3.nslp = ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4191:21: note: in expansion of macro 'ls0001_3' 4191 | ls0001_3.nslp = ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4192:5: note: in expansion of macro 'ls0001_3' 4192 | ls0001_3.crate = .7; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4193:9: note: in expansion of macro 'ls0001_3' 4193 | if (ls0001_3.ierpj != 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4197:11: note: in expansion of macro 'ls0001_3' 4197 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4203:9: note: in expansion of macro 'ls0001_3' 4203 | if (ls0001_3.miter != 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4212:11: note: in expansion of macro 'ls0001_3' 4212 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4214:19: note: in expansion of macro 'ls0001_3' 4214 | savf[i] = ls0001_3.h * savf[i] - yh[i + (yh_dim1 << 1)]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4218:20: note: in expansion of macro 'ls0001_3' 4218 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4219:11: note: in expansion of macro 'ls0001_3' 4219 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4221:34: note: in expansion of macro 'ls0001_3' 4221 | y[i] = yh[i + yh_dim1] + ls0001_3.el[0] * savf[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4234:11: note: in expansion of macro 'ls0001_3' 4234 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4237:16: note: in expansion of macro 'ls0001_3' 4237 | y[i] = ls0001_3.h * savf[i] - (yh[i + (yh_dim1 << 1)] + acor[i]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4240:9: note: in expansion of macro 'ls0001_3' 4240 | if (ls0001_3.iersl < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4243:9: note: in expansion of macro 'ls0001_3' 4243 | if (ls0001_3.iersl > 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4246:20: note: in expansion of macro 'ls0001_3' 4246 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4247:11: note: in expansion of macro 'ls0001_3' 4247 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4251:34: note: in expansion of macro 'ls0001_3' 4251 | y[i] = yh[i + yh_dim1] + ls0001_3.el[0] * acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4268:31: note: in expansion of macro 'ls0001_3' 4268 | if (del <= pnorm * 100. * ls0001_3.uround) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4271:19: note: in expansion of macro 'ls0001_3' 4271 | if (m == 0 && ls0001_3.meth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4283:11: note: in expansion of macro 'ls0001_3' 4283 | d_1 = ls0001_3.crate * .2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4284:5: note: in expansion of macro 'ls0001_3' 4284 | ls0001_3.crate = max(d_1,rm); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4287:21: note: in expansion of macro 'ls0001_3' 4287 | d_1 = 1., d_2 = ls0001_3.crate * 1.5; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4288:34: note: in expansion of macro 'ls0001_3' 4288 | dcon = del * min(d_1,d_2) / (ls0001_3.tesco[ls0001_3.nq * 3 - 2] * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4288:49: note: in expansion of macro 'ls0001_3' 4288 | dcon = del * min(d_1,d_2) / (ls0001_3.tesco[ls0001_3.nq * 3 - 2] * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4289:13: note: in expansion of macro 'ls0001_3' 4289 | ls0001_3.conit); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4294:47: note: in expansion of macro 'ls0001_3' 4294 | d_2 = lsa001_3.pdest, d_3 = rate / (d_1 = ls0001_3.h * ls0001_3.el[0], | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4294:60: note: in expansion of macro 'ls0001_3' 4294 | d_2 = lsa001_3.pdest, d_3 = rate / (d_1 = ls0001_3.h * ls0001_3.el[0], | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4303:14: note: in expansion of macro 'ls0001_3' 4303 | if (m == ls0001_3.maxcor) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4310:20: note: in expansion of macro 'ls0001_3' 4310 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4311:7: note: in expansion of macro 'ls0001_3' 4311 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4323:9: note: in expansion of macro 'ls0001_3' 4323 | if (ls0001_3.miter == 0 || ls0001_3.jcur == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4323:32: note: in expansion of macro 'ls0001_3' 4323 | if (ls0001_3.miter == 0 || ls0001_3.jcur == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4326:5: note: in expansion of macro 'ls0001_3' 4326 | ls0001_3.icf = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4327:5: note: in expansion of macro 'ls0001_3' 4327 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4327:21: note: in expansion of macro 'ls0001_3' 4327 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4330:5: note: in expansion of macro 'ls0001_3' 4330 | ls0001_3.icf = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4332:5: note: in expansion of macro 'ls0001_3' 4332 | ls0001_3.rmax = 2.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4333:5: note: in expansion of macro 'ls0001_3' 4333 | ls0001_3.tn = told; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4334:10: note: in expansion of macro 'ls0001_3' 4334 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4335:11: note: in expansion of macro 'ls0001_3' 4335 | i_2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4339:15: note: in expansion of macro 'ls0001_3' 4339 | i_1 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4346:9: note: in expansion of macro 'ls0001_3' 4346 | if (ls0001_3.ierpj < 0 || ls0001_3.iersl < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4346:31: note: in expansion of macro 'ls0001_3' 4346 | if (ls0001_3.ierpj < 0 || ls0001_3.iersl < 0) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:28: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4352:16: note: in expansion of macro 'ls0001_3' 4352 | if (ncf == ls0001_3.mxncf) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4356:5: note: in expansion of macro 'ls0001_3' 4356 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4356:21: note: in expansion of macro 'ls0001_3' 4356 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4368:5: note: in expansion of macro 'ls0001_3' 4368 | ls0001_3.jcur = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4370:21: note: in expansion of macro 'ls0001_3' 4370 | dsm = del / ls0001_3.tesco[ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4370:36: note: in expansion of macro 'ls0001_3' 4370 | dsm = del / ls0001_3.tesco[ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:24: note: in expansion of macro 'ls0001_3' 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:57: note: in expansion of macro 'ls0001_3' 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4374:17: note: in expansion of macro 'ls0001_3' 4374 | ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4395:5: note: in expansion of macro 'ls0001_3' 4395 | ls0001_3.kflag = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4397:7: note: in expansion of macro 'ls0001_3' 4397 | ++ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4398:5: note: in expansion of macro 'ls0001_3' 4398 | ls0001_3.hu = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4398:19: note: in expansion of macro 'ls0001_3' 4398 | ls0001_3.hu = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4399:5: note: in expansion of macro 'ls0001_3' 4399 | ls0001_3.nqu = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4399:20: note: in expansion of macro 'ls0001_3' 4399 | ls0001_3.nqu = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4400:22: note: in expansion of macro 'ls0001_3' 4400 | lsa001_3.mused = ls0001_3.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4401:11: note: in expansion of macro 'ls0001_3' 4401 | i_2 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4403:15: note: in expansion of macro 'ls0001_3' 4403 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4406:36: note: in expansion of macro 'ls0001_3' 4406 | yh[i + j * yh_dim1] += ls0001_3.el[j - 1] * acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4413:9: note: in expansion of macro 'ls0001_3' 4413 | if (ls0001_3.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4438:9: note: in expansion of macro 'ls0001_3' 4438 | if (ls0001_3.nq > 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4441:30: note: in expansion of macro 'ls0001_3' 4441 | if (dsm > pnorm * 100. * ls0001_3.uround && lsa001_3.pdest != 0.) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:20: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4448:16: note: in expansion of macro 'ls0001_3' 4448 | nqm2 = min(ls0001_3.nq,lsa001_3.mxords); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:33: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4448:16: note: in expansion of macro 'ls0001_3' 4448 | nqm2 = min(ls0001_3.nq,lsa001_3.mxords); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4451:30: note: in expansion of macro 'ls0001_3' 4451 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4456:21: note: in expansion of macro 'ls0001_3' 4456 | rh1it = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4459:9: note: in expansion of macro 'ls0001_3' 4459 | if (ls0001_3.nq <= lsa001_3.mxords) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4466:20: note: in expansion of macro 'ls0001_3' 4466 | dm2 = vmnorm_(&ls0001_3.n, &yh[lm2p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4471:31: note: in expansion of macro 'ls0001_3' 4471 | dm2 = dsm * (lsa001_3.cm1[ls0001_3.nq - 1] / lsa001_3.cm2[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4471:63: note: in expansion of macro 'ls0001_3' 4471 | dm2 = dsm * (lsa001_3.cm1[ls0001_3.nq - 1] / lsa001_3.cm2[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4474:12: note: in expansion of macro 'ls0001_3' 4474 | nqm2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4484:5: note: in expansion of macro 'ls0001_3' 4484 | ls0001_3.meth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4485:5: note: in expansion of macro 'ls0001_3' 4485 | ls0001_3.miter = lsa001_3.jtyp; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4487:5: note: in expansion of macro 'ls0001_3' 4487 | ls0001_3.nq = nqm2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4488:5: note: in expansion of macro 'ls0001_3' 4488 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4488:18: note: in expansion of macro 'ls0001_3' 4488 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4504:30: note: in expansion of macro 'ls0001_3' 4504 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4505:28: note: in expansion of macro 'ls0001_3' 4505 | if (lsa001_3.mxordn >= ls0001_3.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4512:20: note: in expansion of macro 'ls0001_3' 4512 | dm1 = vmnorm_(&ls0001_3.n, &yh[lm1p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4517:31: note: in expansion of macro 'ls0001_3' 4517 | dm1 = dsm * (lsa001_3.cm2[ls0001_3.nq - 1] / lsa001_3.cm1[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4517:63: note: in expansion of macro 'ls0001_3' 4517 | dm1 = dsm * (lsa001_3.cm2[ls0001_3.nq - 1] / lsa001_3.cm1[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4520:12: note: in expansion of macro 'ls0001_3' 4520 | nqm1 = ls0001_3.nq; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4535:16: note: in expansion of macro 'ls0001_3' 4535 | if (dm1 <= ls0001_3.uround * 1e3 * pnorm) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4542:5: note: in expansion of macro 'ls0001_3' 4542 | ls0001_3.meth = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4543:5: note: in expansion of macro 'ls0001_3' 4543 | ls0001_3.miter = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4545:5: note: in expansion of macro 'ls0001_3' 4545 | ls0001_3.nq = nqm1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4546:5: note: in expansion of macro 'ls0001_3' 4546 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4546:18: note: in expansion of macro 'ls0001_3' 4546 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4552:7: note: in expansion of macro 'ls0001_3' 4552 | --ls0001_3.ialth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4553:9: note: in expansion of macro 'ls0001_3' 4553 | if (ls0001_3.ialth == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4556:9: note: in expansion of macro 'ls0001_3' 4556 | if (ls0001_3.ialth > 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4559:9: note: in expansion of macro 'ls0001_3' 4559 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4559:23: note: in expansion of macro 'ls0001_3' 4559 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4562:11: note: in expansion of macro 'ls0001_3' 4562 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4565:16: note: in expansion of macro 'ls0001_3' 4565 | yh[i + ls0001_3.lmax * yh_dim1] = acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4578:7: note: in expansion of macro 'ls0001_3' 4578 | --ls0001_3.kflag; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4579:5: note: in expansion of macro 'ls0001_3' 4579 | ls0001_3.tn = told; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4580:10: note: in expansion of macro 'ls0001_3' 4580 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4581:11: note: in expansion of macro 'ls0001_3' 4581 | i_1 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4585:15: note: in expansion of macro 'ls0001_3' 4585 | i_2 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4592:5: note: in expansion of macro 'ls0001_3' 4592 | ls0001_3.rmax = 2.; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:28: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4596:9: note: in expansion of macro 'ls0001_3' 4596 | if (ls0001_3.kflag <= -3) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4615:9: note: in expansion of macro 'ls0001_3' 4615 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4615:23: note: in expansion of macro 'ls0001_3' 4615 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4618:11: note: in expansion of macro 'ls0001_3' 4618 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4621:36: note: in expansion of macro 'ls0001_3' 4621 | savf[i] = acor[i] - yh[i + ls0001_3.lmax * yh_dim1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:20: note: in expansion of macro 'ls0001_3' 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:53: note: in expansion of macro 'ls0001_3' 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4624:13: note: in expansion of macro 'ls0001_3' 4624 | ls0001_3.nq * 3 - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4625:31: note: in expansion of macro 'ls0001_3' 4625 | exup = 1. / (doublereal) (ls0001_3.l + 1); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4628:30: note: in expansion of macro 'ls0001_3' 4628 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4631:9: note: in expansion of macro 'ls0001_3' 4631 | if (ls0001_3.nq == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:20: note: in expansion of macro 'ls0001_3' 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:36: note: in expansion of macro 'ls0001_3' 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4635:13: note: in expansion of macro 'ls0001_3' 4635 | ls0001_3.tesco[ls0001_3.nq * 3 - 3]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4635:28: note: in expansion of macro 'ls0001_3' 4635 | ls0001_3.tesco[ls0001_3.nq * 3 - 3]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4636:30: note: in expansion of macro 'ls0001_3' 4636 | exdn = 1. / (doublereal) ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4641:9: note: in expansion of macro 'ls0001_3' 4641 | if (ls0001_3.meth == 2) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4647:9: note: in expansion of macro 'ls0001_3' 4647 | if (ls0001_3.l < ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4647:22: note: in expansion of macro 'ls0001_3' 4647 | if (ls0001_3.l < ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4649:31: note: in expansion of macro 'ls0001_3' 4649 | d_1 = rhup, d_2 = sm1[ls0001_3.l - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4653:27: note: in expansion of macro 'ls0001_3' 4653 | d_1 = rhsm, d_2 = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4655:9: note: in expansion of macro 'ls0001_3' 4655 | if (ls0001_3.nq > 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4657:31: note: in expansion of macro 'ls0001_3' 4657 | d_1 = rhdn, d_2 = sm1[ls0001_3.nq - 2] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4673:12: note: in expansion of macro 'ls0001_3' 4673 | newq = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4677:12: note: in expansion of macro 'ls0001_3' 4677 | newq = ls0001_3.nq - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4679:9: note: in expansion of macro 'ls0001_3' 4679 | if (ls0001_3.kflag < 0 && rh > 1.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4684:12: note: in expansion of macro 'ls0001_3' 4684 | newq = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:9: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:21: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:52: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4690:11: note: in expansion of macro 'ls0001_3' 4690 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4697:5: note: in expansion of macro 'ls0001_3' 4697 | ls0001_3.ialth = 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4702:9: note: in expansion of macro 'ls0001_3' 4702 | if (ls0001_3.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4709:9: note: in expansion of macro 'ls0001_3' 4709 | if (ls0001_3.kflag == 0 && rh < 1.1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4713:9: note: in expansion of macro 'ls0001_3' 4713 | if (ls0001_3.kflag <= -2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4724:17: note: in expansion of macro 'ls0001_3' 4724 | if (newq == ls0001_3.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4728:5: note: in expansion of macro 'ls0001_3' 4728 | ls0001_3.nq = newq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4729:5: note: in expansion of macro 'ls0001_3' 4729 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4729:18: note: in expansion of macro 'ls0001_3' 4729 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4744:9: note: in expansion of macro 'ls0001_3' 4744 | if (ls0001_3.kflag == -10) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:11: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4751:5: note: in expansion of macro 'ls0001_3' 4751 | ls0001_3.h *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4752:11: note: in expansion of macro 'ls0001_3' 4752 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4757:20: note: in expansion of macro 'ls0001_3' 4757 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4758:7: note: in expansion of macro 'ls0001_3' 4758 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4759:11: note: in expansion of macro 'ls0001_3' 4759 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4762:34: note: in expansion of macro 'ls0001_3' 4762 | yh[i + (yh_dim1 << 1)] = ls0001_3.h * savf[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4764:5: note: in expansion of macro 'ls0001_3' 4764 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4764:21: note: in expansion of macro 'ls0001_3' 4764 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4765:5: note: in expansion of macro 'ls0001_3' 4765 | ls0001_3.ialth = 5; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4766:9: note: in expansion of macro 'ls0001_3' 4766 | if (ls0001_3.nq == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4769:5: note: in expansion of macro 'ls0001_3' 4769 | ls0001_3.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4770:5: note: in expansion of macro 'ls0001_3' 4770 | ls0001_3.l = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4780:5: note: in expansion of macro 'ls0001_3' 4780 | ls0001_3.kflag = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4783:5: note: in expansion of macro 'ls0001_3' 4783 | ls0001_3.kflag = -2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4786:5: note: in expansion of macro 'ls0001_3' 4786 | ls0001_3.kflag = -3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4789:5: note: in expansion of macro 'ls0001_3' 4789 | ls0001_3.rmax = 10.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4791:14: note: in expansion of macro 'ls0001_3' 4791 | r = 1. / ls0001_3.tesco[ls0001_3.nqu * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4791:29: note: in expansion of macro 'ls0001_3' 4791 | r = 1. / ls0001_3.tesco[ls0001_3.nqu * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4792:11: note: in expansion of macro 'ls0001_3' 4792 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4798:5: note: in expansion of macro 'ls0001_3' 4798 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4798:21: note: in expansion of macro 'ls0001_3' 4798 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4799:5: note: in expansion of macro 'ls0001_3' 4799 | ls0001_3.jstart = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'xerrwv_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:89:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 89 | #define eh0001_1 (*(struct eh0001_1_ *) &eh0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4964:9: note: in expansion of macro 'eh0001_1' 4964 | if (eh0001_1.mesflg == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:89:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 89 | #define eh0001_1 (*(struct eh0001_1_ *) &eh0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4969:11: note: in expansion of macro 'eh0001_1' 4969 | lun = eh0001_1.lunit; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'intdy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5463:24: note: in expansion of macro 'ls0001_2' 5463 | if (*k < 0 || *k > ls0001_2.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:10: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:24: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:38: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:64: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5467:13: note: in expansion of macro 'ls0001_2' 5467 | ls0001_2.hu); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5468:27: note: in expansion of macro 'ls0001_2' 5468 | if ((*t - tp) * (*t - ls0001_2.tn) > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5472:15: note: in expansion of macro 'ls0001_2' 5472 | s = (*t - ls0001_2.tn) / ls0001_2.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5472:30: note: in expansion of macro 'ls0001_2' 5472 | s = (*t - ls0001_2.tn) / ls0001_2.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5477:11: note: in expansion of macro 'ls0001_2' 5477 | jj1 = ls0001_2.l - *k; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5478:11: note: in expansion of macro 'ls0001_2' 5478 | i_1 = ls0001_2.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5485:11: note: in expansion of macro 'ls0001_2' 5485 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5488:29: note: in expansion of macro 'ls0001_2' 5488 | dky[i] = c * yh[i + ls0001_2.l * yh_dim1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5490:15: note: in expansion of macro 'ls0001_2' 5490 | if (*k == ls0001_2.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5493:11: note: in expansion of macro 'ls0001_2' 5493 | jb2 = ls0001_2.nq - *k; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5496:13: note: in expansion of macro 'ls0001_2' 5496 | j = ls0001_2.nq - jb; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5510:15: note: in expansion of macro 'ls0001_2' 5510 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5522:17: note: in expansion of macro 'ls0001_2' 5522 | r = pow_di(&ls0001_2.h, &i_1); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5523:11: note: in expansion of macro 'ls0001_2' 5523 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5540:13: note: in expansion of macro 'ls0001_2' 5540 | ls0001_2.tn, 0L); | ^~~~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:22:13: warning: 'RCSid' defined but not used [-Wunused-variable] 22 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'solsy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:15:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 15 | #define dgbsl_ csoda_dgbsl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:17:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 17 | #define dgesl_ csoda_dgesl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:17:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 17 | #define dgesl_ csoda_dgesl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'stoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4143 | ls0001_3.tn += ls0001_3.h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4143 | ls0001_3.tn += ls0001_3.h; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4156:13: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4156 | pnorm = vmnorm_(&ls0001_3.n, &yh1[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4218:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4218 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4246:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4246 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:15: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4466:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4466 | dm2 = vmnorm_(&ls0001_3.n, &yh[lm2p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4512:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4512 | dm1 = vmnorm_(&ls0001_3.n, &yh[lm1p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4751:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4751 | ls0001_3.h *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4120 | ls0001_3.h *= rh; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4120 | ls0001_3.h *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4121 | ls0001_3.rc *= rh; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4121 | ls0001_3.rc *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'prja_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3628:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3628 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3654 | ls0001_2.nfe += ls0001_2.n; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3654 | ls0001_2.nfe += ls0001_2.n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3712:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3712 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3756 | ls0001_2.nfe += mba; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3756 | ls0001_2.nfe += mba; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3760:23: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3760 | lsa001_2.pdnorm = bnorm_(&ls0001_2.n, &wm[3], &meband, &ml, &mu, &ewt[1]) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:14:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 14 | #define dgbfa_ csoda_dgbfa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:6: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3658:23: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3658 | lsa001_2.pdnorm = fnorm_(&ls0001_2.n, &wm[3], &ewt[1]) / abs(hl0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:16:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 16 | #define dgefa_ csoda_dgefa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:16:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 16 | #define dgefa_ csoda_dgefa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'intdy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'lsoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3382:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3382 | xerrwv_("lsoda-- istate = 3 and neq increased (i1 to i2) ", &c__50, & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3383 | c__5, &c__0, &c__2, &ls0001_1.n, &neq[1], &c__0, &c_b136, &c_b136, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3384 | 50L); | ~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2812 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: wmake[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' arning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:31: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3026 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3119:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3119 | xerrwv_(" at t = r1, tentative step size h = r2, step nst = i1 ", & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3120 | c__60, &c__107, &c__0, &c__1, &ls0001_1.nst, &c__0, &c__2, & | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3015 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/normrand.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perpulse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perstep.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/normrand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perpulse.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perstep.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisrand.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisrand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisson.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisson.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/pulse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/pulse.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/quad.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/quad.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ramp.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ramp.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revhyper.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revhyper.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsawto.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsawto.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsigmo.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsigmo.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/romberg.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/romberg.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/runge.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/runge.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sawtooth.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sawtooth.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/schedule.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/schedule.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/seidel.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/seidel.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sigmoid.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sigmoid.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sigmoid.c,v 1.2 1997/08/30 14:32:20 hines Exp" ; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simeq.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simeq.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = "simeq.c,v 1.3 1999/01/04 12:46:51 hines Exp" ; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/praxis.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/praxis.c:123:16: warning: 'c__10' defined but not used [-Wunused-variable] 123 | static integer c__10 = 10; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simplex.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simplex.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c: In function '_cvode_sparse': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:247:16: warning: unused variable 'j' [-Wunused-variable] 247 | int i, j, ierr; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:76:25: warning: 'spar_prmat' defined but not used [-Wunused-function] 76 | # define prmat spar_prmat | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:342:13: note: in expansion of macro 'prmat' 342 | static void prmat() | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sparse.c,v 1.7 1998/03/12 13:17:17 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/spline.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/spline.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/squarewa.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/squarewa.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'create_sparseobj': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:142:10: warning: unused variable 'j' [-Wunused-variable] 142 | int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function '_vector_sparse': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:287:7: warning: unused variable 'zero' [-Wunused-variable] 287 | int zero = 0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'initeqn': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:565:11: warning: unused variable 'val' [-Wunused-variable] 565 | double *val; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'vec_spar_getelm': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:626:13: warning: unused variable '_ix' [-Wunused-variable] 626 | int _ix = 0; | ^~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:41:25: warning: 'vec_spar_prmat' defined but not used [-Wunused-function] 41 | # define prmat vec_spar_prmat | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:532:13: note: in expansion of macro 'prmat' 532 | static void prmat() | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:126:15: warning: 'd' defined but not used [-Wunused-variable] 126 | static double d; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:14:13: warning: 'RCSid' defined but not used [-Wunused-variable] 14 | static char RCSid[] = "vsparse.c,v 1.5 1999/01/04 12:46:53 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c: In function '_ss_derivimplicit': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c:90:18: warning: unused variable 'i' [-Wunused-variable] 90 | int err, i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/step.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/step.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/threshol.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/threshol.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/tridiag.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/tridiag.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c:2: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_struct.h:29:13: warning: 'nrn_buildjacobian_thread' declared 'static' but never defined [-Wunused-function] 29 | static void nrn_buildjacobian_thread(NewtonSpace* ns, | ^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c: In function '_cvode_sparse_thread': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:225:16: warning: unused variable 'j' [-Wunused-variable] 225 | int i, j, ierr; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c: In function 'free_elm': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:368:19: warning: unused variable 'elnext' [-Wunused-variable] 368 | Elm *el, *elnext; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:368:14: warning: unused variable 'el' [-Wunused-variable] 368 | Elm *el, *elnext; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:305:13: warning: 'prmat' defined but not used [-Wunused-function] 305 | static void prmat(SparseObj* so) { | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sparse.c,v 1.7 1998/03/12 13:17:17 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c: In function '_ss_derivimplicit_thread': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c:53:18: warning: unused variable 'i' [-Wunused-variable] 53 | int err, i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:80:13: warning: 'Translate' declared 'static' but never defined [-Wunused-function] 80 | static void Translate(); | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:82:13: warning: 'ExpandTranslationArrays' declared 'static' but never defined [-Wunused-function] 82 | static void ExpandTranslationArrays(); | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c: In function 'spPrint': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:154:23: warning: variable 'pImagElements' set but not used [-Wunused-but-set-variable] 154 | ElementPtr pElement, pImagElements[PRINTER_WIDTH/10+1]; | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c: In function 'spFileVector': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:572:25: warning: unused variable 'Err' [-Wunused-variable] 572 | register int I, Size, Err; | ^~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:67:13: warning: 'SolveComplexMatrix' declared 'static' but never defined [-Wunused-function] 67 | static void SolveComplexMatrix(); | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:68:13: warning: 'SolveComplexTransposedMatrix' declared 'static' but never defined [-Wunused-function] 68 | static void SolveComplexTransposedMatrix(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c: In function 'spPartition': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:606:25: warning: variable 'DoCmplxDirect' set but not used [-Wunused-but-set-variable] 606 | BOOLEAN *DoRealDirect, *DoCmplxDirect; | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:77:12: warning: 'FactorComplexMatrix' declared 'static' but never defined [-Wunused-function] 77 | static int FactorComplexMatrix(); | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspalloc.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspalloc.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: In function 'spDeterminant': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:997:22: warning: unused variable 'cDeterminant' [-Wunused-variable] 997 | ComplexNumber Pivot, cDeterminant; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:997:15: warning: unused variable 'Pivot' [-Wunused-variable] 997 | ComplexNumber Pivot, cDeterminant; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:22: warning: unused variable 'ni' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:18: warning: unused variable 'nr' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:12: warning: unused variable 'Norm' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: In function 'spLargestElement': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:1982:15: warning: unused variable 'cPivot' [-Wunused-variable] 1982 | ComplexNumber cPivot; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:85:13: warning: 'ScaleComplexMatrix' declared 'static' but never defined [-Wunused-function] 85 | static void ScaleComplexMatrix(); | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:86:13: warning: 'ComplexMatrixMultiply' declared 'static' but never defined [-Wunused-function] 86 | static void ComplexMatrixMultiply(); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:87:13: warning: 'ComplexTransposedMatrixMultiply' declared 'static' but never defined [-Wunused-function] 87 | static void ComplexTransposedMatrixMultiply(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:88:19: warning: 'ComplexCondition' declared 'static' but never defined [-Wunused-function] 88 | static RealNumber ComplexCondition(); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspbuild.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspbuild.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspoutput.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspoutput.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c: In function 'SolveComplexMatrix': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:290:25: warning: unused variable 'ExtVector' [-Wunused-variable] 290 | register ComplexVector ExtVector; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c: In function 'SolveComplexTransposedMatrix': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:608:26: warning: unused variable 'ExtVector' [-Wunused-variable] 608 | register ComplexVector ExtVector; | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c:2: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspfactor.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspfactor.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvband.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvbandpre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvbbdpre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvdense.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/csputils.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/csputils.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvdiag.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c: In function 'CVodeF': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c:326:21: warning: variable 'istop' set but not used [-Wunused-but-set-variable] 326 | booleantype iret, istop; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c: In function 'CVBBDPrecReInitB': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c:1125:9: warning: variable 'cvode_mem' set but not used [-Wunused-but-set-variable] 1125 | void *cvode_mem; | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c: In function 'CVodeSetMinStep': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c:266:12: warning: variable 'hmax' set but not used [-Wunused-but-set-variable] 266 | realtype hmax; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvspgmr.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c: In function 'IDABand': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c:123:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 123 | int flag; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idabbdpre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c: In function 'IDAStopTest2': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c:1343:7: warning: variable 'ier' set but not used [-Wunused-but-set-variable] 1343 | int ier; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c: In function 'IDAnls': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c:1631:15: warning: variable 'ier' set but not used [-Wunused-but-set-variable] 1631 | int retval, ier; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVode': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:1371:18: warning: variable 'wrk2' set but not used [-Wunused-but-set-variable] 1371 | N_Vector wrk1, wrk2; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:1371:12: warning: variable 'wrk1' set but not used [-Wunused-but-set-variable] 1371 | N_Vector wrk1, wrk2; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVStgrNlsNewton': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:4693:15: warning: variable 'callSetup' set but not used [-Wunused-but-set-variable] 4693 | booleantype callSetup; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVStgr1NlsNewton': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:4966:15: warning: variable 'callSetup' set but not used [-Wunused-but-set-variable] 4966 | booleantype callSetup; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVsldet': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:5622:36: warning: variable 'rd3b' set but not used [-Wunused-but-set-variable] 5622 | realtype rd2a, rd2b, rd2c, rd3a, rd3b, cest1, corr1; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:5620:12: warning: variable 'small' set but not used [-Wunused-but-set-variable] 5620 | realtype small, tem, sqmax, saqk, qp, s, sqmaxk, saqj, sqmin; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c: In function 'IDADense': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c:115:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 115 | int flag; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c: In function 'IDASpgmr': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c:157:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 157 | int flag, maxl1; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/dense.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/band.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/iterative.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/smalldense.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_serial.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/spgmr.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/sundialsmath.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnrt.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DNRNCMAKE -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp: In function 'wchar_t* mywstrdup(char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp:194:7: warning: unused variable 'count' [-Wunused-variable] 194 | int count = mbstowcs(ws, s, sz + 1); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp: In function 'void nrnpython_start(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp:241:22: warning: unused variable 'gilsav' [-Wunused-variable] 241 | PyGILState_STATE gilsav = PyGILState_Ensure(); | ^~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'void eval_component(PyHocObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:880:7: warning: unused variable 'j' [-Wunused-variable] 880 | int j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'PyObject* hocpickle_setstate(PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:2684:11: warning: comparison of integer expressions of different signedness: 'Py_ssize_t' {aka 'long int'} and 'long unsigned int' [-Wsign-compare] 2684 | if (len != size * sizeof(double)) { | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'PyObject* iternext_sl(PyHocObject*, hoc_Item*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:1733:1: warning: control reaches end of non-void function [-Wreturn-type] 1733 | } | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:2836:20: warning: 'hocobj_members' defined but not used [-Wunused-variable] 2836 | static PyMemberDef hocobj_members[] = {{NULL, 0, 0, 0, NULL}}; | ^~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'int NPySecObj_init(NPySecObj*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:274:15: warning: unused variable 'cell' [-Wunused-variable] 274 | PyObject* cell = 0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* NPySecObj_pt3dremove(NPySecObj*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:543:11: warning: unused variable 'n' [-Wunused-variable] 543 | int i0, n; | ^ In file included from /usr/include/python3.9/Python.h:145, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.h:24, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* NPySecObj_psection(NPySecObj*)': /usr/include/python3.9/ceval.h:24:66: warning: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations] 24 | PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:814:24: note: in expansion of macro 'PyEval_CallObject' 814 | PyObject* result = PyEval_CallObject(nrnpy_psection, arglist); | ^~~~~~~~~~~~~~~~~ /usr/include/python3.9/ceval.h:17:43: note: declared here 17 | Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* pyseg_richcmp(NPySegObj*, PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:983:13: warning: unused variable 'pysec' [-Wunused-variable] 983 | PyObject* pysec; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:984:8: warning: unused variable 'result' [-Wunused-variable] 984 | bool result = false; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* pysec_richcmp(NPySecObj*, PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:996:13: warning: unused variable 'pysec' [-Wunused-variable] 996 | PyObject* pysec; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:997:8: warning: unused variable 'result' [-Wunused-variable] 997 | bool result = false; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* var_of_mech_next(NPyVarOfMechIter*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1685:16: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1685 | if (self->i_ >= self->msym_->s_varn) { | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'int segment_setattro(NPySegObj*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1847:9: warning: unused variable 'nseg' [-Wunused-variable] 1847 | int nseg; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* nrnpy_nrn()': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2286:7: warning: unused variable 'i' [-Wunused-variable] 2286 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'void nrnpy_reg_mech(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2455:17: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 2455 | for (i = 0; i < mf->sym->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2461:6: warning: 'void nrnpy_unreg_mech(int)' defined but not used [-Wunused-function] 2461 | void nrnpy_unreg_mech(int type) { | ^~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'char* pickle(PyObject*, size_t*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:667:21: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 667 | for (int i = 0; i < *size; ++i) { | ~~^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:762:18: warning: 'PyObject* char2pylist(char*, int, int*, int*)' defined but not used [-Wunused-function] 762 | static PyObject* char2pylist(char* buf, int np, int* cnt, int* displ) { | ^~~~~~~~~~~ In file included from /usr/include/python3.9/pytime.h:6, from /usr/include/python3.9/Python.h:85, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.h:24, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:7: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'hpoasgn': /usr/include/python3.9/object.h:422:25: warning: 'poright' may be used uninitialized in this function [-Wmaybe-uninitialized] 422 | if (--op->ob_refcnt != 0) { | ~~~~~~~~~~~~~~~~^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:324:13: note: 'poright' was declared here 324 | PyObject* poright; | ^~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'int ECS_insert(int, PyHocObject*, int, int, int, double, double, double, double, double, double, PyHocObject*, PyHocObject*, int, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:173:9: warning: unused variable 'i' [-Wunused-variable] 173 | int i = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void ics_set_grid_concentrations(int, int, int64_t*, int64_t*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:419:13: warning: unused variable 'j' [-Wunused-variable] 419 | ssize_t j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:420:13: warning: unused variable 'num_nodes' [-Wunused-variable] 420 | ssize_t num_nodes; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:423:9: warning: unused variable 'total_surface_nodes' [-Wunused-variable] 423 | int total_surface_nodes = nodes_per_seg_start_indices[n]; //nodes_per_seg_lengths has length n + 1 since it has a 0 as the first start index | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void ics_set_grid_currents(int, int, int64_t*, int64_t*, PyObject*, double*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:446:16: warning: unused variable 'j' [-Wunused-variable] 446 | ssize_t i, j, num_nodes; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:446:19: warning: unused variable 'num_nodes' [-Wunused-variable] 446 | ssize_t i, j, num_nodes; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:448:9: warning: unused variable 'total_surface_nodes' [-Wunused-variable] 448 | int total_surface_nodes = nodes_per_seg_start_indices[n]; //nodes_per_seg_lengths has length n + 1 since it has a 0 as the first start index | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void set_grid_currents(int, int, PyObject*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:512:11: warning: unused variable 'dests' [-Wunused-variable] 512 | long* dests; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'int remove(Grid_node**, Grid_node*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:586:9: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 586 | delete temp; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:596:5: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 596 | delete delete_me; | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void empty_list(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:620:9: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 620 | delete old_head; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'int Grid_node::insert(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:646:16: warning: unused variable 'grid' [-Wunused-variable] 646 | Grid_node* grid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:648:16: warning: variable 'save' set but not used [-Wunused-but-set-variable] 648 | Grid_node *save; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'virtual void ECS_Grid_node::do_grid_currents(double*, double, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:727:21: warning: unused variable 'c' [-Wunused-variable] 727 | Current_Triple* c; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'virtual void ICS_Grid_node::scatter_grid_concentrations()': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:1402:13: warning: variable 'my_states' set but not used [-Wunused-but-set-variable] 1402 | double* my_states; | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void rxd_include_node_flux3D(int, int*, int*, long int*, double*, PyObject**)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:246:16: warning: unused variable 'j' [-Wunused-variable] 246 | int i = 0, j, k, n, grid_id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:246:19: warning: unused variable 'k' [-Wunused-variable] 246 | int i = 0, j, k, n, grid_id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:246:22: warning: unused variable 'n' [-Wunused-variable] 246 | int i = 0, j, k, n, grid_id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void rxd_include_node_flux1D(int, long int*, double*, PyObject**)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:331:9: warning: unused variable 'i' [-Wunused-variable] 331 | int i; | ^ In file included from /usr/include/python3.9/Python.h:145, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:11, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void apply_node_flux(int, long int*, double*, PyObject**, double, double*)': /usr/include/python3.9/ceval.h:24:66: warning: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations] 24 | PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:376:26: note: in expansion of macro 'PyEval_CallObject' 376 | result = PyEval_CallObject(source[i], NULL); | ^~~~~~~~~~~~~~~~~ /usr/include/python3.9/ceval.h:17:43: note: declared here 17 | Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void ode_solve(double, double, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:636:29: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 636 | for(i = 0, j = 0; i < num_states; i++) | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:638:18: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare] 638 | if(i == zvi[j]) | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:661:29: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 661 | for(i = 0, j = 0; i < num_states; i++) | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:663:18: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare] 663 | if(i == zvi[j]) | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void setup_currents(int, int, int*, int*, double*, PyHocObject**, int*, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:726:28: warning: variable 'idx' set but not used [-Wunused-but-set-variable] 726 | int i, j, k, id, side, idx; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void get_reaction_rates(ICSReactions*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1820:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1820 | if(react->vptrs != NULL) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1823:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1823 | react->reaction(states_for_reaction, params_for_reaction, result_array, mc_mult, ecs_states_for_reaction, ecs_params_for_reaction, ecs_result, flux, v); | ^~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1210:13: warning: 'void free_SpeciesIndexList()' defined but not used [-Wunused-function] 1210 | static void free_SpeciesIndexList() | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'solve_reaction(ICSReactions*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1910:13: warning: 'ecs_params_for_reaction' may be used uninitialized in this function [-Wmaybe-uninitialized] 1910 | double* ecs_params_for_reaction; | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2111:54: warning: 'ecs_result_dx' may be used uninitialized in this function [-Wmaybe-uninitialized] 2111 | pd = (ecs_result_dx[jac_i] - ecs_result[jac_i])/dx; | ~~~~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2111:74: warning: 'ecs_result' may be used uninitialized in this function [-Wmaybe-uninitialized] 2111 | pd = (ecs_result_dx[jac_i] - ecs_result[jac_i])/dx; | ~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2084:63: warning: 'ecs_states_for_reaction_dx' may be used uninitialized in this function [-Wmaybe-uninitialized] 2084 | ecs_states_for_reaction_dx[i] += dx; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1983:48: warning: 'ecs_states_for_reaction' may be used uninitialized in this function [-Wmaybe-uninitialized] 1983 | ecs_states_for_reaction[i] = cvode_states[react->ecs_index[segment][i]]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2008:24: warning: 'mc_mult' may be used uninitialized in this function [-Wmaybe-uninitialized] 2008 | mc_mult[i] = react->mc_multiplier[i][segment]; | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'ReactGridData* create_threaded_reactions(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:256:30: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 256 | for(i = 0; i < react->region_size; i++) | ~~^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void* ecs_do_reactions(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:358:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 358 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:366:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 366 | for(k = 0; j < react->num_species_involved + react->num_params_involved; k++, j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:374:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 374 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:381:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 381 | for(k = 0; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:397:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 397 | for (j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:399:50: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 399 | for(k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:403:55: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 403 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:413:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 413 | for (j = 0; j < react->num_species_involved - 1; j ++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:415:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 415 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:418:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 418 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:430:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 430 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:439:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 439 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:511:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 511 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:517:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 517 | for(k = 0; j < react->num_species_involved + react->num_params_involved; k++, j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:523:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 523 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:530:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 530 | for(k = 0; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:546:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 546 | for (j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:548:50: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 548 | for(k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:552:55: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 552 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:562:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 562 | for (j = 0; j < react->num_species_involved - 1; j ++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:564:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 564 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' 1/src/nrnpython/rxd_extracellular.cpp:567:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 567 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:579:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 579 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:588:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 588 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void _rhs_variable_step_ecs(double, const double*, double*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:735:26: warning: unused variable 'orig_1d_states' [-Wunused-variable] 735 | double const * const orig_1d_states = states + _cvode_offset; | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:738:19: warning: unused variable 'orig_1d_ydot' [-Wunused-variable] 738 | double* const orig_1d_ydot = ydot + _cvode_offset; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void _rhs_variable_step_helper(Grid_node*, const double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:19: warning: unused variable 'bc_x' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:25: warning: unused variable 'bc_y' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:31: warning: unused variable 'bc_z' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:816:12: warning: unused variable 'bc' [-Wunused-variable] 816 | double bc; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:15:12: warning: 'int dg_adi(Grid_node*)' declared 'static' but never defined [-Wunused-function] 15 | static int dg_adi(Grid_node*); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function '_rhs_variable_step_helper(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:813:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 813 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'ics_ode_solve(double, double*, double const*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:993:16: warning: 'grid_size' may be used uninitialized in this function [-Wmaybe-uninitialized] 993 | RHS += grid_size; | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_find_deltas(long int, long int, long int, double*, long int*, long int*, double*, double, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:166:12: warning: unused variable 'dt' [-Wunused-variable] 166 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_find_deltas(long int, long int, long int, double*, long int*, long int*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:218:12: warning: unused variable 'dt' [-Wunused-variable] 218 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void* do_ics_deltas(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:267:12: warning: unused variable 'dt' [-Wunused-variable] 267 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_x_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:323:10: warning: unused variable 'N' [-Wunused-variable] 323 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_y_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:390:10: warning: unused variable 'N' [-Wunused-variable] 390 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_z_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:454:10: warning: unused variable 'N' [-Wunused-variable] 454 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_x(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:523:10: warning: unused variable 'N' [-Wunused-variable] 523 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_y(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:586:10: warning: unused variable 'N' [-Wunused-variable] 586 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_z(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:650:10: warning: unused variable 'N' [-Wunused-variable] 650 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void variable_step_delta(long int, long int, long int, double*, long int*, long int*, const double*, double, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:810:12: warning: variable 'prev_dc' set but not used [-Wunused-but-set-variable] 810 | double prev_dc, current_dc, next_dc; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:96:12: warning: 'int solve_dd_clhs_tridiag(int, double, double, double, double, double, double, double, double*, double*)' defined but not used [-Wunused-function] 96 | static int solve_dd_clhs_tridiag(const int N, const double l_diag, const double diag, | ^~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 97%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_marching_cubes.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 98%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_llgramarea.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:4: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp: In function '_rhs_variable_step_helper_tort(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:770:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 770 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp: In function '_rhs_variable_step_helper_vol(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:879:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 879 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 98%] Linking CXX shared library ../../lib/libnrniv.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv_lib.dir/link.txt --verbose=1 /usr/bin/g++ -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,libnrniv.so.0.0.0 -o ../../lib/libnrniv.so.0.0.0 CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o CMakeFiles/nrniv_lib.dir/bbs.cpp.o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o CMakeFiles/nrniv_lib.dir/classreg.cpp.o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o CMakeFiles/nrniv_lib.dir/datapath.cpp.o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o CMakeFiles/nrniv_lib.dir/kschan.cpp.o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o CMakeFiles/nrniv_lib.dir/linmod.cpp.o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o CMakeFiles/nrniv_lib.dir/netpar.cpp.o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o CMakeFiles/nrniv_lib.dir/occvode.cpp.o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o CMakeFiles/nrniv_lib.dir/partrans.cpp.o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o CMakeFiles/nrniv_lib.dir/savstate.cpp.o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o CMakeFiles/nrniv_lib.dir/shape.cpp.o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o CMakeFiles/nrniv_lib.dir/singlech.cpp.o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o CMakeFiles/nrniv_lib.dir/symdir.cpp.o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E cmake_symlink_library ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: warning: type 'struct OcSparseMatrix' violates the C++ One Definition Rule [-Wodr] 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: a different type is defined in another translation unit 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: the first difference of corresponding definitions is field 'm_' 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: a field of same name but different type is defined in another translation unit 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: type 'struct SPMAT' should match type 'void' 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:185:9: warning: type 'union ' violates the C++ One Definition Rule [-Wodr] 185 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:38:11: note: a different type is defined in another translation unit 38 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:188:12: note: the first difference of corresponding definitions is field 'pstr_' 188 | char** pstr_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:41:15: note: a field with different name is defined in another translation unit 41 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: warning: type 'struct PyHocObject' violates the C++ One Definition Rule [-Wodr] 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:57:3: note: a different type is defined in another translation unit 57 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:184:25: note: the first difference of corresponding definitions is field 'ho_' 184 | PyObject_HEAD Object* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:37:11: note: a field of same name but different type is defined in another translation unit 37 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: note: type 'struct Object' should match type 'void' 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:13: warning: type of 's_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: return value type mismatch 174 | int s_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: 's_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:23: warning: type of 'do_fio' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: return value type mismatch 184 | int do_fio() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: 'do_fio' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:33: warning: type of 'e_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: return value type mismatch 189 | int e_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: 'e_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:230:14: warning: type of 'oc_restore_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 230 | void oc_restore_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: type mismatch in parameter 5 445 | void oc_restore_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: 'oc_restore_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:229:14: warning: type of 'oc_save_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 229 | void oc_save_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: type mismatch in parameter 5 428 | void oc_save_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: 'oc_save_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:285:13: warning: type of 'nrn_threads_create' does not match original declaration [-Wlto-type-mismatch] 285 | extern void nrn_threads_create(int); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type mismatch in parameter 2 488 | void nrn_threads_create(int n, int parallel) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type 'int' should match type 'void' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: 'nrn_threads_create' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1864:6: warning: type of 'nrnthread_get_trajectory_requests' does not match original declaration [-Wlto-type-mismatch] 1864 | void nrnthread_get_trajectory_requests(int tid, int& bsize, int& ntrajec, void**& vpr, int*& types, int*& indices, double**& pvars, double**& varrays); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: type mismatch in parameter 9 5561 | void nrnthread_get_trajectory_requests(int tid, int& bsize, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: 'nrnthread_get_trajectory_requests' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:33:20: warning: 'nrnmpi_multisplit' violates the C++ One Definition Rule [-Wodr] 33 | extern int nrnmpi_multisplit(Section*, double x, int sid, int backbonestyle); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: return value type mismatch 310 | void nrnmpi_multisplit(Section* sec, double x, int sid, int backbone_style) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: type 'void' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: 'nrnmpi_multisplit' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: 'at_time' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrncvode.h:20:13: warning: type of 'nrn_random_play' does not match original declaration [-Wlto-type-mismatch] 20 | extern void nrn_random_play(NrnThread*); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: type mismatch in parameter 1 583 | void nrn_random_play() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: 'nrn_random_play' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp:51:41: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 51 | bucketCount = new int[howManyBuckets]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp: In member function 'rate': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp:74:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 74 | int* s = new int[size]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:110:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 110 | implementPool(TQItemPool, TQItem) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:302:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 302 | implementStructPool(SectionPool, Section) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:152:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 152 | DoubleArrayPool** p1 = new DoubleArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:153:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 153 | DatumArrayPool** p2 = new DatumArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'in_place_data_realloc', inlined from 'nrn_cache_prop_realloc' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:575:24: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:515:55: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 515 | Memb_list** mlmap = new Memb_list*[n_memb_func]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_cache_prop_realloc': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: '__builtin_strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^ In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '__fgets_alias' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^ /usr/include/bits/stdio2.h:251:14: note: in a call to function '__fgets_alias' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'nrnthread_dat2_3.part.0': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1385:24: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1385 | delays = new double[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'gapsolve': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] 619 | cmplx_spSolve(m_, rb-1, rx1-1, jb-1, jx1-1); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 2 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 3 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 4 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 5 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:135:1: note: in a call to function 'cmplx_spSolve' 135 | spSolve( eMatrix, RHS, Solution IMAG_VECTORS ) | ^ In function 'mk_cellgroups', inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:648:40: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 648 | cgs[i].output_ps = new PreSyn*[npre]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'mk_cgs_netcon_info', inlined from 'mk_cellgroups' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:722:21, inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:558:44: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 558 | cgs[i].netcons = new NetCon*[nccnt[i]+1]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2434:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2434 | smap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2435:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2435 | rmap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'v_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3144:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 3144 | sid0i = new int[nback]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'exchange_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1226:57: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1226 | m.nd_rt_index_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1227:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1227 | m.nd_rt_index_th_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:591:42: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 591 | int* nn = new int[nrnmpi_numprocs]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:591:42: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 591 | int* nn = new int[nrnmpi_numprocs]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:449:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 449 | implementPool(SelfEventPool, SelfEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp:12:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 12 | implementPool(HocEventPool, HocEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'init_global': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1773:71: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1773 | ml->nodelist = new Node*[ml->nodecount]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'settype': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1456:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1456 | Symbol** ligands = new Symbol*[nligand_+1]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'setstructure': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1895:47: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1895 | gc_ = new KSGateComplex[ngate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1899:50: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1899 | trans_ = new KSTransition[ntrans_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1903:45: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1903 | state_ = new KSState[nstate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 98%] Built target nrniv_lib make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/depend /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/hoc_module.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/hoc_module.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/hoc_module.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/hoc_module.dir/depend.internal". Scanning dependencies of target hoc_module make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nrniv.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nrniv.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nrniv.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nrniv.dir/depend.internal". Scanning dependencies of target nrniv make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 98%] Generating inithoc.cpp cd /builddir/build/BUILD/nrn-7.8.1/src/nrnpython && cp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/inithoc.cpp /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/inithoc.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/constants.py /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/constants.py cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/demo /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/demo make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 98%] Built target hoc_module make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/testneuron.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/testneuron.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/testneuron.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/testneuron.dir/depend.internal". Scanning dependencies of target testneuron make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 98%] Building CXX object src/nrniv/CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/g++ -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++98 -o CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrnmain.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 98%] Building C object src/nrniv/CMakeFiles/nrniv.dir/__/oc/ockludge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ockludge.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 99%] Building C object src/nrniv/CMakeFiles/nrniv.dir/__/oc/modlreg.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/modlreg.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 99%] Linking CXX executable ../../bin/nrniv cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv.dir/link.txt --verbose=1 /usr/bin/g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -o ../../bin/nrniv ../../lib/libnrniv.so.0.0.0 -pthread -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 99%] Built target nrniv make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/rxdmod.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/rxdmod.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/rxdmod.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/rxdmod.dir/depend.internal". Scanning dependencies of target rxdmod make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/test/rxd && /usr/bin/cmake -E env NEURONHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn NRNHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu LD_LIBRARY_PATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib: PYTHONPATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib/python:/builddir/build/BUILD/nrn-7.8.1/test/rxd: /bin/bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nrnivmodl ./ecs Creating x86_64 directory for .o files. /builddir/build/BUILD/nrn-7.8.1/test/rxd ./ecs/pump.mod pump.mod make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' mkdir -p x86_64 make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> NMODL pump.mod MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib \ /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl pump.mod make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> Compiling mod_func.c gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/include -fPIC -c mod_func.c -o mod_func.o make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> Compiling x86_64/pump.c (cd .. ; gcc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/include -fPIC -c x86_64/pump.c -o x86_64/pump.o) make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' => LINKING library x86_64/libnrnmech.so Mod files: pump.mod (cd .. ; g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -shared -fPIC -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -I /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/include -o x86_64/libnrnmech.so -Wl,-soname,libnrnmech.so \ x86_64/mod_func.o x86_64/pump.o -L/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib -lnrniv -Wl,-rpath,/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib -lreadline -lcurses -lform -lpython3 -lX11 -lXext) (cd .. ; rm -f x86_64/.libs/libnrnmech.so ; mkdir -p x86_64/.libs ; ln -s ../../x86_64/libnrnmech.so x86_64/.libs/libnrnmech.so) make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' Successfully created x86_64/special which: no xcrun in (/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin) ls: cannot access './ecs/*.inc': No such file or directory make[3]: warning: -j4 forced in submake: resetting jobserver mode. Translating pump.mod into pump.c Thread Safe x86_64/pump.c:101:34: warning: missing braces around initializer [-Wmissing-braces] 101 | static VoidFunc hoc_intfunc[] = { | ^ 102 | "setdata_pump", _hoc_setdata, | { } 103 | 0, 0 | { 104 | }; | } x86_64/pump.c:114:44: warning: missing braces around initializer [-Wmissing-braces] 114 | static HocParmLimits _hoc_parm_limits[] = { | ^ 115 | 0,0,0 | { { 116 | }; | }} x86_64/pump.c:117:42: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmUnits _hoc_parm_units[] = { | ^ 118 | "imax_pump", "mA/cm2", | { } 119 | "Kd_pump", "mM", | { } 120 | "ix_pump", "mA/cm2", | { } 121 | "i_pump", "mA/cm2", | { } 122 | 0,0 | { 123 | }; | } x86_64/pump.c:125:33: warning: missing braces around initializer [-Wmissing-braces] 125 | static DoubScal hoc_scdoub[] = { | ^ 126 | "imax_pump", &imax_pump, | { } 127 | "Kd_pump", &Kd_pump, | { } 128 | 0,0 | { 129 | }; | } x86_64/pump.c:130:31: warning: missing braces around initializer [-Wmissing-braces] 130 | static DoubVec hoc_vdoub[] = { | ^ 131 | 0,0,0 | { 132 | }; | } x86_64/pump.c: In function '_pump_reg': x86_64/pump.c:182:13: warning: unused variable '_vectorized' [-Wunused-variable] 182 | int _vectorized = 1; | ^~~~~~~~~~~ x86_64/pump.c: In function 'initmodel': x86_64/pump.c:240:18: warning: unused variable '_save' [-Wunused-variable] 240 | int _i; double _save;{ | ^~~~~ x86_64/pump.c:240:7: warning: unused variable '_i' [-Wunused-variable] 240 | int _i; double _save;{ | ^~ x86_64/pump.c: In function '_nrn_jacob__pump': x86_64/pump.c:328:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ x86_64/pump.c:328:20: warning: unused variable '_ppvar' [-Wunused-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ x86_64/pump.c: In function '_initlists': x86_64/pump.c:359:6: warning: unused variable '_i' [-Wunused-variable] 359 | int _i; static int _first = 1; | ^~ x86_64/pump.c:358:21: warning: unused variable '_p' [-Wunused-variable] 358 | double _x; double* _p = &_x; | ^~ At top level: x86_64/pump.c:355:13: warning: 'terminal' defined but not used [-Wunused-function] 355 | static void terminal(){} | ^~~~~~~~ x86_64/pump.c:215:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 215 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ x86_64/pump.c:213:12: warning: '_ninits' defined but not used [-Wunused-variable] 213 | static int _ninits = 0; | ^~~~~~~ x86_64/pump.c:212:12: warning: 'error' defined but not used [-Wunused-variable] 212 | static int error; | ^~~~~ x86_64/pump.c:210:14: warning: 'modelname' defined but not used [-Wunused-variable] 210 | static char *modelname = ""; | ^~~~~~~~~ x86_64/pump.c:209:12: warning: '_reset' defined but not used [-Wunused-variable] 209 | static int _reset; | ^~~~~~ x86_64/pump.c:133:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 133 | static double _sav_indep; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 99%] Built target rxdmod make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 99%] Building CXX object test/CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test && /usr/bin/g++ -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/test -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/oc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/test/unit_tests/oc/hoc_interpreter.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 98%] Building CXX object test/CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test && /usr/bin/g++ -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/test -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/oc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -o CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/test/unit_tests/unit_test.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [100%] Linking CXX executable ../bin/test/testneuron cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/testneuron.dir/link.txt --verbose=1 /usr/bin/g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -o ../bin/test/testneuron ../lib/libnrniv.so.0.0.0 -pthread -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [100%] Built target testneuron make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/CMakeFiles 0 make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' + . /etc/profile.d/modules.sh ++ . /etc/profile.d/00-modulepath.sh +++ '[' -z /etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ']' +++ : ++ '[' -z '' ']' ++ LMOD_ALLOW_ROOT_USE=yes ++ '[' -n '' ']' ++ '[' yes '!=' yes ']' ++ '[' -z /usr/share/modulefiles ']' ++ findExec PS_CMD /usr/bin/ps ps ++ Nm=PS_CMD ++ confPath=/usr/bin/ps ++ execNm=ps ++ eval PS_CMD=/usr/bin/ps +++ PS_CMD=/usr/bin/ps ++ '[' '!' -x /usr/bin/ps ']' ++ unset Nm confPath execNm ++ findExec EXPR_CMD /usr/bin/expr expr ++ Nm=EXPR_CMD ++ confPath=/usr/bin/expr ++ execNm=expr ++ eval EXPR_CMD=/usr/bin/expr +++ EXPR_CMD=/usr/bin/expr ++ '[' '!' -x /usr/bin/expr ']' ++ unset Nm confPath execNm ++ findExec BASENAME_CMD /usr/bin/basename basename ++ Nm=BASENAME_CMD ++ confPath=/usr/bin/basename ++ execNm=basename ++ eval BASENAME_CMD=/usr/bin/basename +++ BASENAME_CMD=/usr/bin/basename ++ '[' '!' -x /usr/bin/basename ']' ++ unset Nm confPath execNm ++ unset -f findExec +++ /usr/bin/ps -p 136 -ocomm= ++ my_shell=sh +++ /usr/bin/expr sh : '-*\(.*\)' ++ my_shell=sh +++ /usr/bin/basename sh ++ my_shell=sh ++ '[' -f /usr/share/lmod/lmod/init/sh ']' ++ . /usr/share/lmod/lmod/init/sh +++ LMOD_ROOT=/usr/share/lmod +++ LMOD_PKG=/usr/share/lmod/lmod +++ LMOD_DIR=/usr/share/lmod/lmod/libexec/ +++ LMOD_CMD=/usr/share/lmod/lmod/libexec/lmod +++ MODULESHOME=/usr/share/lmod/lmod +++ export LMOD_CMD +++ export LMOD_PKG +++ export LMOD_DIR +++ export MODULESHOME +++ export LMOD_DIR ++ unset my_shell PS_CMD EXPR_CMD BASENAME_CMD MODULEPATH_INIT LMOD_ALLOW_ROOT_USE + module load mpi/mpich-x86_64 ++ /usr/share/lmod/lmod/libexec/lmod sh load mpi/mpich-x86_64 + eval '__LMOD_REF_COUNT_LD_LIBRARY_PATH=/usr/lib64/mpich/lib:1;' export '__LMOD_REF_COUNT_LD_LIBRARY_PATH;' 'LD_LIBRARY_PATH=/usr/lib64/mpich/lib;' export 'LD_LIBRARY_PATH;' '__LMOD_REF_COUNT_LOADEDMODULES=mpi/mpich-x86_64:1;' export '__LMOD_REF_COUNT_LOADEDMODULES;' 'LOADEDMODULES=mpi/mpich-x86_64;' export 'LOADEDMODULES;' '__LMOD_REF_COUNT_MANPATH=/usr/share/man/mpich-x86_64:1\;/usr/share/lmod/lmod/share/man:1;' export '__LMOD_REF_COUNT_MANPATH;' 'MANPATH=:/usr/share/man/mpich-x86_64:/usr/share/lmod/lmod/share/man;' export 'MANPATH;' '__LMOD_REF_COUNT_MODULEPATH=/etc/modulefiles:1\;/usr/share/modulefiles:1\;/usr/share/modulefiles/Linux:1\;/usr/share/modulefiles/Core:1\;/usr/share/lmod/lmod/modulefiles/Core:1;' export '__LMOD_REF_COUNT_MODULEPATH;' 'MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core;' export 'MODULEPATH;' 'MPI_BIN=/usr/lib64/mpich/bin;' export 'MPI_BIN;' 'MPI_COMPILER=mpich-x86_64;' export 'MPI_COMPILER;' 'MPI_FORTRAN_MOD_DIR=/usr/lib64/gfortran/modules/mpich;' export 'MPI_FORTRAN_MOD_DIR;' 'MPI_HOME=/usr/lib64/mpich;' export 'MPI_HOME;' 'MPI_INCLUDE=/usr/include/mpich-x86_64;' export 'MPI_INCLUDE;' 'MPI_LIB=/usr/lib64/mpich/lib;' export 'MPI_LIB;' 'MPI_MAN=/usr/share/man/mpich-x86_64;' export 'MPI_MAN;' 'MPI_PYTHON2_SITEARCH=%\{python2_sitearch\}/mpich;' export 'MPI_PYTHON2_SITEARCH;' 'MPI_PYTHON3_SITEARCH=/usr/lib64/python3.9/site-packages/mpich;' export 'MPI_PYTHON3_SITEARCH;' 'MPI_PYTHON_SITEARCH=%\{python2_sitearch\}/mpich;' export 'MPI_PYTHON_SITEARCH;' 'MPI_SUFFIX=_mpich;' export 'MPI_SUFFIX;' 'MPI_SYSCONFIG=/etc/mpich-x86_64;' export 'MPI_SYSCONFIG;' '__LMOD_REF_COUNT_PATH=/usr/lib64/mpich/bin:1\;/builddir/.local/bin:1\;/builddir/bin:1\;/usr/bin:1\;/bin:1\;/usr/sbin:1\;/sbin:1\;/usr/local/sbin:1;' export '__LMOD_REF_COUNT_PATH;' 'PATH=/usr/lib64/mpich/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin;' export 'PATH;' '__LMOD_REF_COUNT_PKG_CONFIG_PATH=/usr/lib64/mpich/lib/pkgconfig:1\;/usr/lib64/pkgconfig:1\;/usr/share/pkgconfig:1;' export '__LMOD_REF_COUNT_PKG_CONFIG_PATH;' 'PKG_CONFIG_PATH=/usr/lib64/mpich/lib/pkgconfig::/usr/lib64/pkgconfig:/usr/share/pkgconfig;' export 'PKG_CONFIG_PATH;' '__LMOD_REF_COUNT__LMFILES_=/usr/share/modulefiles/mpi/mpich-x86_64:1;' export '__LMOD_REF_COUNT__LMFILES_;' '_LMFILES_=/usr/share/modulefiles/mpi/mpich-x86_64;' export '_LMFILES_;' '_ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXttcGk9e1siZm4iXT0iL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9tcGkvbXBpY2gteDg2XzY0IixbImZ1bGxOYW1lIl09Im1waS9tcGljaC14ODZfNjQiLFsibG9hZE9yZGVyIl09MSxwcm9wVD17fSxbInN0YWNrRGVwdGgiXT0wLFsic3RhdHVzIl09ImFjdGl2ZSIsWyJ1c2VyTmFtZSJdPSJtcGkvbXBpY2gteDg2XzY0Iix9LH0sbXBhdGhBPXsiL2V0Yy9tb2R1bGVmaWxlcyIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzL0xpbnV4IiwiL3Vzci9zaGFyZS9tb2R1;' export '_ModuleTable001_;' '_ModuleTable002_=bGVmaWxlcy9Db3JlIiwiL3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfSxbInN5c3RlbUJhc2VNUEFUSCJdPSIvZXRjL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXM6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eDovdXNyL3NoYXJlL21vZHVsZWZpbGVzL0NvcmU6L3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfQ==;' export '_ModuleTable002_;' '_ModuleTable_Sz_=2;' export '_ModuleTable_Sz_;' *** BUILDING neuron-7.8.1-mpich *** ++ __LMOD_REF_COUNT_LD_LIBRARY_PATH=/usr/lib64/mpich/lib:1 ++ export __LMOD_REF_COUNT_LD_LIBRARY_PATH ++ LD_LIBRARY_PATH=/usr/lib64/mpich/lib ++ export LD_LIBRARY_PATH ++ __LMOD_REF_COUNT_LOADEDMODULES=mpi/mpich-x86_64:1 ++ export __LMOD_REF_COUNT_LOADEDMODULES ++ LOADEDMODULES=mpi/mpich-x86_64 ++ export LOADEDMODULES ++ __LMOD_REF_COUNT_MANPATH='/usr/share/man/mpich-x86_64:1;/usr/share/lmod/lmod/share/man:1' ++ export __LMOD_REF_COUNT_MANPATH ++ MANPATH=:/usr/share/man/mpich-x86_64:/usr/share/lmod/lmod/share/man ++ export MANPATH ++ __LMOD_REF_COUNT_MODULEPATH='/etc/modulefiles:1;/usr/share/modulefiles:1;/usr/share/modulefiles/Linux:1;/usr/share/modulefiles/Core:1;/usr/share/lmod/lmod/modulefiles/Core:1' ++ export __LMOD_REF_COUNT_MODULEPATH ++ MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ++ export MODULEPATH ++ MPI_BIN=/usr/lib64/mpich/bin ++ export MPI_BIN ++ MPI_COMPILER=mpich-x86_64 ++ export MPI_COMPILER ++ MPI_FORTRAN_MOD_DIR=/usr/lib64/gfortran/modules/mpich ++ export MPI_FORTRAN_MOD_DIR ++ MPI_HOME=/usr/lib64/mpich ++ export MPI_HOME ++ MPI_INCLUDE=/usr/include/mpich-x86_64 ++ export MPI_INCLUDE ++ MPI_LIB=/usr/lib64/mpich/lib ++ export MPI_LIB ++ MPI_MAN=/usr/share/man/mpich-x86_64 ++ export MPI_MAN ++ MPI_PYTHON2_SITEARCH='%{python2_sitearch}/mpich' ++ export MPI_PYTHON2_SITEARCH ++ MPI_PYTHON3_SITEARCH=/usr/lib64/python3.9/site-packages/mpich ++ export MPI_PYTHON3_SITEARCH ++ MPI_PYTHON_SITEARCH='%{python2_sitearch}/mpich' ++ export MPI_PYTHON_SITEARCH ++ MPI_SUFFIX=_mpich ++ export MPI_SUFFIX ++ MPI_SYSCONFIG=/etc/mpich-x86_64 ++ export MPI_SYSCONFIG ++ __LMOD_REF_COUNT_PATH='/usr/lib64/mpich/bin:1;/builddir/.local/bin:1;/builddir/bin:1;/usr/bin:1;/bin:1;/usr/sbin:1;/sbin:1;/usr/local/sbin:1' ++ export __LMOD_REF_COUNT_PATH ++ PATH=/usr/lib64/mpich/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin ++ export PATH ++ __LMOD_REF_COUNT_PKG_CONFIG_PATH='/usr/lib64/mpich/lib/pkgconfig:1;/usr/lib64/pkgconfig:1;/usr/share/pkgconfig:1' ++ export __LMOD_REF_COUNT_PKG_CONFIG_PATH ++ PKG_CONFIG_PATH=/usr/lib64/mpich/lib/pkgconfig::/usr/lib64/pkgconfig:/usr/share/pkgconfig ++ export PKG_CONFIG_PATH ++ __LMOD_REF_COUNT__LMFILES_=/usr/share/modulefiles/mpi/mpich-x86_64:1 ++ export __LMOD_REF_COUNT__LMFILES_ ++ _LMFILES_=/usr/share/modulefiles/mpi/mpich-x86_64 ++ export _LMFILES_ ++ _ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXttcGk9e1siZm4iXT0iL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9tcGkvbXBpY2gteDg2XzY0IixbImZ1bGxOYW1lIl09Im1waS9tcGljaC14ODZfNjQiLFsibG9hZE9yZGVyIl09MSxwcm9wVD17fSxbInN0YWNrRGVwdGgiXT0wLFsic3RhdHVzIl09ImFjdGl2ZSIsWyJ1c2VyTmFtZSJdPSJtcGkvbXBpY2gteDg2XzY0Iix9LH0sbXBhdGhBPXsiL2V0Yy9tb2R1bGVmaWxlcyIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzL0xpbnV4IiwiL3Vzci9zaGFyZS9tb2R1 ++ export _ModuleTable001_ ++ _ModuleTable002_=bGVmaWxlcy9Db3JlIiwiL3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfSxbInN5c3RlbUJhc2VNUEFUSCJdPSIvZXRjL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXM6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eDovdXNyL3NoYXJlL21vZHVsZWZpbGVzL0NvcmU6L3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfQ== ++ export _ModuleTable002_ ++ _ModuleTable_Sz_=2 ++ export _ModuleTable_Sz_ + export 'CFLAGS=-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CC=mpicc + CC=mpicc + export CXX=mpicxx + CXX=mpicxx + export FC=mpif90 + FC=mpif90 + export F77=mpif77 + F77=mpif77 + export MPI_YES=ON + MPI_YES=ON + export MPI_COMPILE_TYPE=-mpich + MPI_COMPILE_TYPE=-mpich + export MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu-mpich + MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu-mpich + export MPI_LIBFILE=/usr/lib64/mpich/lib/libmpi.so + MPI_LIBFILE=/usr/lib64/mpich/lib/libmpi.so + echo + echo '*** BUILDING neuron-7.8.1-mpich ***' + echo + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=mpicc + export CC + CXX=mpicxx + export CXX + cmake -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_INCLUDEDIR:PATH=/usr/include/mpich-x86_64 -DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib64/mpich/lib -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr/lib64/mpich -DBUILD_SHARED_LIBS:BOOL=ON -DNRN_ENABLE_SHARED=ON -DNRN_ENABLE_INTERVIEWS=ON -DNRN_ENABLE_PYTHON=ON -DNRN_ENABLE_PYTHON_DYNAMIC=OFF -DNRN_ENABLE_THREADS=ON -DNRN_ENABLE_MEMACS=ON -DNRN_ENABLE_RX3D=ON -DNRN_ENABLE_CORENEURON=OFF -DNRN_ENABLE_TESTS=ON -DNRN_ENABLE_REL_RPATH=ON -DNRN_ENABLE_MODULE_INSTALL=ON -DNRN_ENABLE_INTERNAL_READLINE=OFF -DNRN_ENABLE_MPI=ON -DMPI_INCLUDE_PATH=/usr/include/mpich-x86_64 -DMPI_LIBRARY=/usr/lib64/mpich/lib/libmpi.so -DLIB_SUFFIX=64 -B x86_64-redhat-linux-gnu-mpich -- The C compiler identification is GNU 11.0.0 -- The CXX compiler identification is GNU 11.0.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/lib64/mpich/bin/mpicc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/lib64/mpich/bin/mpicxx - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Using relative RPATHs -- Setting build type to 'RelWithDebInfo' as none was specified. -- Found BISON: /usr/bin/bison (found version "3.7.4") -- Found FLEX: /usr/bin/flex (found version "2.6.4") -- Found Readline: /usr/include -- Found PythonInterp: /usr/bin/python3.9 (found version "3.9.1") -- Found Cython: /usr/bin/cython (found version "0.29.21") -- Found MPI_C: /usr/lib64/mpich/bin/mpicc (found version "3.1") -- Found MPI_CXX: /usr/lib64/mpich/bin/mpicxx (found version "3.1") -- Found MPI: TRUE (found version "3.1") -- Using external Interviews from -- Found PythonInterp: /usr/bin/python3.9 (found suitable version "3.9.1", minimum required is "3") -- Found PythonLibs: /usr/lib64/libpython3.9.so -- Check if compiler accepts -pthread -- Check if compiler accepts -pthread - yes -- Found Threads: TRUE -- Found pytest: /usr/lib/python3.9/site-packages/pytest (found version "6.0.2") -- Found mpi4py: /usr/lib64/python3.9/site-packages/mpich/mpi4py (found version "3.0.3") -- -- Configured NEURON 7.8 -- -- Some things you can do now: -- --------------+-------------------------------------------------------------- -- Command | Description -- --------------+-------------------------------------------------------------- -- make install | Will install NEURON to: /usr/lib64/mpich -- | Change the install location of NEURON using: -- | cmake -DCMAKE_INSTALL_PREFIX= -- make docs | Build the API documentation -- make uninstall| Removes files installed by make install (todo) -- --------------+-------------------------------------------------------------- -- Build option | Status -- --------------+-------------------------------------------------------------- -- BUILD_TYPE | RelWithDebInfo (allowed: Custom;Debug;Release;RelWithDebInfo;Fast) -- COMPILE FLAGS | -- Shared | ON -- Binary special| OFF -- Legacy FR | ON -- MPI | ON -- INC | /usr/include/mpich-x86_64 -- LIB | MPI_LIBRARY-NOTFOUND -- DYNAMIC | OFF -- Python | ON -- EXE | /usr/bin/python3.9 -- INC | /usr/include/python3.9 -- LIB | /usr/lib64/libpython3.9.so -- MODULE | ON -- DYNAMIC | OFF -- Readline | /usr/lib64/libreadline.so -- Curses | /usr/lib64/libcurses.so;/usr/lib64/libform.so -- RX3D | ON -- OptLevel | 0 -- Interviews | ON -- PATH | -- INC | /usr/include -- X11 (INC) | /usr/include -- CoreNEURON | OFF -- --------------+-------------------------------------------------------------- -- See documentation : https://www.neuron.yale.edu/neuron/ -- --------------+-------------------------------------------------------------- -- -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project: CMAKE_Fortran_FLAGS_RELEASE LIB_SUFFIX SHARE_INSTALL_PREFIX SYSCONF_INSTALL_DIR -- Build files have been written to: /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich + /usr/bin/make -O -j2 V=1 VERBOSE=1 -C x86_64-redhat-linux-gnu-mpich make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/cmake -S/builddir/build/BUILD/nrn-7.8.1 -B/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich --check-build-system CMakeFiles/Makefile.cmake 0 make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/CMakeFiles /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich//CMakeFiles/progress.marks make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f CMakeFiles/Makefile2 all /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/depend /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/CMakeFiles/hh_update.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/CMakeFiles/hh_update.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/CMakeFiles/hh_update.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/CMakeFiles/hh_update.dir/depend.internal". Scanning dependencies of target hh_update make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nocmodl.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nocmodl.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nocmodl.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nocmodl.dir/depend.internal". Scanning dependencies of target nocmodl make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 0%] Update hh.mod for CoreNEURON compatibility sed "s/ RANGE minf/ GLOBAL minf/" /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.1 sed "s/ :TABLE minf/ TABLE minf/" /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.1 > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.2 /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.2 /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod /usr/bin/cmake -E remove /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.2 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 0%] Built target hh_update make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/modlunit.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/modlunit.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/modlunit.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/modlunit.dir/depend.internal". Scanning dependencies of target modlunit make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 1%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y: In function 'yyparse': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y:292:51: warning: unused variable 'd' [-Wunused-variable] 292 | {P1{Item *q; double d, unit_mag(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y:292:41: warning: unused variable 'q' [-Wunused-variable] 292 | {P1{Item *q; double d, unit_mag(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 0%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y: In function 'yyparse': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y:1127:48: warning: unused variable 'd' [-Wunused-variable] 1127 | {Item *q; double d, unit_mag(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y:1127:38: warning: unused variable 'q' [-Wunused-variable] 1127 | {Item *q; double d, unit_mag(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 1%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/lex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/lex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c:1471:16: warning: 'input' defined but not used [-Wunused-function] 1471 | #else | ^ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c:1428:17: warning: 'yyunput' defined but not used [-Wunused-function] 1428 | | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/diffeq.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 2%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/consist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/consist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/consist.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 2%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/declare.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/declare.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/declare.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c:1433:17: warning: 'yyunput' defined but not used [-Wunused-function] 1433 | | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 2%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:18:30: warning: missing braces around initializer [-Wmissing-braces] 18 | } keywords[] = { | ^ 19 | "VERBATIM", VERBATIM, | { } 20 | "ENDVERBATIM", END_VERBATIM, /* explicit in lex.l */ | { } 21 | "COMMENT", COMMENT, | { } 22 | "ENDCOMMENT", END_COMMENT, /* explicit in lex.l */ | { } 23 | "TITLE", TITLE, | { } 24 | "CONSTANT", CONSTANT, | { } 25 | "PARAMETER", PARAMETER, | { } 26 | "INDEPENDENT", INDEPENDENT, | { } 27 | "ASSIGNED", ASSIGNED, | { } 28 | "INITIAL", INITIAL1, | { } 29 | "TERMINAL", TERMINAL, | { } 30 | "DERIVATIVE", DERIVATIVE, | { } 31 | "EQUATION", EQUATION, | { } 32 | "BREAKPOINT", BREAKPOINT, | { } 33 | "CONDUCTANCE", CONDUCTANCE, | { } 34 | "SOLVE", SOLVE, | { } 35 | "STATE", STATE, | { } 36 | "STEPPED", STEPPED, | { } 37 | "LINEAR", LINEAR, | { } 38 | "NONLINEAR", NONLINEAR, | { } 39 | "DISCRETE", DISCRETE, | { } 40 | "FUNCTION", FUNCTION1, | { } 41 | "FUNCTION_TABLE", FUNCTION_TABLE, | { } 42 | "PROCEDURE", PROCEDURE, | { } 43 | "PARTIAL", PARTIAL, | { } 44 | "INT", INT, | { } 45 | "DEL2", DEL2, | { } 46 | "DEL", DEL, | { } 47 | "LOCAL", LOCAL, | { } 48 | "METHOD", USING, | { } 49 | "STEADYSTATE", USING, | { } 50 | "SENS", SENS, | { } 51 | "STEP", STEP, | { } 52 | "WITH", WITH, | { } 53 | "FROM", FROM, | { } 54 | "TO", TO, | { } 55 | "BY", BY, | { } 56 | "if", IF, | { } 57 | "else", ELSE, | { } 58 | "while", WHILE, | { } 59 | "IF", IF, | { } 60 | "ELSE", ELSE, | { } 61 | "WHILE", WHILE, | { } 62 | "START", START1, | { } 63 | "DEFINE", DEFINE1, | { } 64 | 65 | "KINETIC", KINETIC, | { } 66 | "CONSERVE", CONSERVE, | { } 67 | "PLOT", PLOT, | { } 68 | "VS", VS, | { } 69 | "LAG", LAG, | { } 70 | "RESET", RESET, | { } 71 | "MATCH", MATCH, | { } 72 | "MODEL_LEVEL", MODEL_LEVEL, /* inserted by merge */ | { } 73 | "SWEEP", SWEEP, | { } 74 | "FIRST", FIRST, | { } 75 | "LAST", LAST, | { } 76 | "COMPARTMENT", COMPARTMENT, | { } 77 | "LONGITUDINAL_DIFFUSION", LONGDIFUS, | { } 78 | "PUTQ", PUTQ, | { } 79 | "GETQ", GETQ, | { } 80 | "IFERROR", IFERROR, | { } 81 | "SOLVEFOR", SOLVEFOR, | { } 82 | "UNITS", UNITBLK, | { } 83 | "UNITSON", UNITSON, | { } 84 | "UNITSOFF", UNITSOFF, | { } 85 | "TABLE", TABLE, | { } 86 | "DEPEND", DEPEND, | { } 87 | "NEURON", NEURON, | { } 88 | "SUFFIX", SUFFIX, | { } 89 | "POINT_PROCESS", SUFFIX, | { } 90 | "ARTIFICIAL_CELL", SUFFIX, | { } 91 | "NONSPECIFIC_CURRENT", NONSPECIFIC, | { } 92 | "ELECTRODE_CURRENT", ELECTRODE_CURRENT, | { } 93 | "USEION", USEION, | { } 94 | "READ", READ, | { } 95 | "WRITE", WRITE, | { } 96 | "RANGE", RANGE, | make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' { } 97 | "SECTION", SECTION, | { } 98 | "VALENCE", VALENCE, | { } 99 | "GLOBAL", GLOBAL, | { } 100 | "POINTER", POINTER, | { } 101 | "BBCOREPOINTER", POINTER, | { } 102 | "EXTERNAL", EXTERNAL, | { } 103 | "INCLUDE", INCLUDE1, | { } 104 | "CONSTRUCTOR", CONSTRUCTOR, | { } 105 | "DESTRUCTOR", DESTRUCTOR, | { } 106 | "NET_RECEIVE", NETRECEIVE, | { } 107 | "BEFORE", BEFORE, /* before NEURON sets up cy' = f(y,t) */ | { } 108 | "AFTER", AFTER, /* after NEURON solves cy' = f(y, t) */ | { } 109 | "WATCH", WATCH, | { } 110 | "FOR_NETCONS", FOR_NETCONS, | { } 111 | "THREADSAFE", THREADSAFE, | { } 112 | "PROTECT", PROTECT, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:124:29: warning: missing braces around initializer [-Wmissing-braces] 124 | } special[] = { | ^ 125 | ";", SEMI, &semi, | { } 126 | "{", BEGINBLK, &beginblk, | { } 127 | "}", ENDBLK, &endblk, | { } 128 | 0, 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:135:29: warning: missing braces around initializer [-Wmissing-braces] 135 | } methods[] = { | ^ 136 | "adams", DERF | KINF, 0, | { } 137 | "runge", DERF | KINF, 0, | { } 138 | "euler", DERF | KINF, 0, | { } 139 | "adeuler", DERF | KINF, 1, | { } 140 | "heun", DERF | KINF, 0, | { } 141 | "adrunge", DERF | KINF, 1, | { } 142 | "newton", NLINF, 0, | { } 143 | "simplex", NLINF, 0, | { } 144 | "simeq", LINF, 0, | { } 145 | "seidel", LINF, 0, | { } 146 | "_advance", KINF, 0, | { } 147 | "sparse", KINF, 0, | { } 148 | "derivimplicit", DERF, 0, /* name hard wired in deriv.c */ | { } 149 | "cnexp", DERF, 0, | { } 150 | "clsoda", DERF | KINF, 0, /* Tolerance built in to | { } 151 | scopgear.c */ 152 | "after_cvode", 0, 0, | { } 153 | "cvode_t", 0, 0, | { } 154 | "cvode_t_v", 0, 0, | { } 155 | 0, 0, 0 | { 156 | }; | } make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/consist.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/io.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/io.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/io.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/kinunit.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c: In function 'massagederiv': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c:432:40: warning: unused variable 'solve_seen' [-Wunused-variable] 432 | int count = 0, deriv_implicit, solve_seen; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/discrete.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/list.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:16:30: warning: missing braces around initializer [-Wmissing-braces] 16 | } keywords[] = { | ^ 17 | "VERBATIM", VERBATIM, | { } 18 | "COMMENT", COMMENT, | { } 19 | "TITLE", MODEL, | { } 20 | "CONSTANT", CONSTANT, | { } 21 | "PARAMETER", PARAMETER, | { } 22 | "INDEPENDENT", INDEPENDENT, | { } 23 | "ASSIGNED", DEPENDENT, | { } 24 | "INITIAL", INITIAL1, | { } 25 | "TERMINAL", TERMINAL, | { } 26 | "DERIVATIVE", DERIVATIVE, | { } 27 | "EQUATION", EQUATION, | { } 28 | "BREAKPOINT", BREAKPOINT, | { } 29 | "CONDUCTANCE", CONDUCTANCE, | { } 30 | "SOLVE", SOLVE, | { } 31 | "STATE", STATE, | { } 32 | "STEPPED", STEPPED, | { } 33 | "LINEAR", LINEAR, | { } 34 | "NONLINEAR", NONLINEAR, | { } 35 | "DISCRETE", DISCRETE, | { } 36 | "FUNCTION", FUNCTION1, | { } 37 | "FUNCTION_TABLE", FUNCTION_TABLE, | { } 38 | "PROCEDURE", PROCEDURE, | { } 39 | "PARTIAL", PARTIAL, | { } 40 | "INT", INT, | { } 41 | "DEL2", DEL2, | { } 42 | "DEL", DEL, | { } 43 | "LOCAL", LOCAL, | { } 44 | "METHOD", USING, | { } 45 | "STEADYSTATE", USING, | { } 46 | "SENS", SENS, | { } 47 | "STEP", STEP, | { } 48 | "WITH", WITH, | { } 49 | "FROM", FROM, | { } 50 | "FORALL", FORALL1, | { } 51 | "TO", TO, | { } 52 | "BY", BY, | { } 53 | "if", IF, | { } 54 | "else", ELSE, | { } 55 | "while", WHILE, | { } 56 | "START", START1, | { } 57 | "DEFINE", DEFINE1, | { } 58 | 59 | "KINETIC", KINETIC, | { } 60 | "CONSERVE", CONSERVE, | { } 61 | "PLOT", PLOT, | { } 62 | "VS", VS, | { } 63 | "LAG", LAG, | { } 64 | "RESET", RESET, | { } 65 | "MATCH", MATCH, | { } 66 | "MODEL_LEVEL", MODEL_LEVEL, /* inserted by merge */ | { } 67 | "SWEEP", SWEEP, | { } 68 | "FIRST", FIRST, | { } 69 | "LAST", LAST, | { } 70 | "COMPARTMENT", COMPARTMENT, | { } 71 | "LONGITUDINAL_DIFFUSION", LONGDIFUS, | { } 72 | "PUTQ", PUTQ, | { } 73 | "GETQ", GETQ, | { } 74 | "IFERROR", IFERROR, | { } 75 | "SOLVEFOR", SOLVEFOR, | { } 76 | "UNITS", UNITS, | { } 77 | "UNITSON", UNITSON, | { } 78 | "UNITSOFF", UNITSOFF, | { } 79 | "TABLE", TABLE, | { } 80 | "DEPEND", DEPEND, | { } 81 | "NEURON", NEURON, | { } 82 | "SUFFIX", SUFFIX, | { } 83 | "POINT_PROCESS", SUFFIX, | { } 84 | "ARTIFICIAL_CELL", SUFFIX, | { } 85 | "NONSPECIFIC_CURRENT", NONSPECIFIC, | { } 86 | "ELECTRODE_CURRENT", ELECTRODE_CURRENT, | { } 87 | "SECTION", SECTION, | { } 88 | "RANGE", RANGE, | { } 89 | "USEION", USEION, | { } 90 | "READ", READ, | { } 91 | "WRITE", WRITE, | { } 92 | "VALENCE", VALENCE, | { } 93 | "CHARGE", VALENCE, | { } 94 | "GLOBAL", GLOBAL, | { } 95 | "POINmake[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' TER", POINTER, | { } 96 | "BBCOREPOINTER", BBCOREPOINTER, | { } 97 | "EXTERNAL", EXTERNAL, | { } 98 | "INCLUDE", INCLUDE1, | { } 99 | "CONSTRUCTOR", CONSTRUCTOR, | { } 100 | "DESTRUCTOR", DESTRUCTOR, | { } 101 | "NET_RECEIVE", NETRECEIVE, | { } 102 | "BEFORE", BEFORE, /* before NEURON sets up cy' = f(y,t) */ | { } 103 | "AFTER", AFTER, /* after NEURON solves cy' = f(y, t) */ | { } 104 | "WATCH", WATCH, | { } 105 | "FOR_NETCONS", FOR_NETCONS, | { } 106 | "THREADSAFE", THREADSAFE, | { } 107 | "PROTECT", PROTECT, | { } 108 | "MUTEXLOCK", NRNMUTEXLOCK, | { } 109 | "MUTEXUNLOCK", NRNMUTEXUNLOCK, | { } 110 | "REPRESENTS", REPRESENTS, | { } 111 | 0, 0 | { 112 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:122:29: warning: missing braces around initializer [-Wmissing-braces] 122 | } special[] = { | ^ 123 | ";", SEMI, &semi, | { } 124 | "{", BEGINBLK, &beginblk, | { } 125 | "}", ENDBLK, &endblk, | { } 126 | 0, 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:133:29: warning: missing braces around initializer [-Wmissing-braces] 133 | } methods[] = { | ^ 134 | "adams", DERF | KINF, 0, | { } 135 | "runge", DERF | KINF, 0, | { } 136 | "euler", DERF | KINF, 0, | { } 137 | "adeuler", DERF | KINF, 1, | { } 138 | "heun", DERF | KINF, 0, | { } 139 | "adrunge", DERF | KINF, 1, | { } 140 | "gear", DERF | KINF, 1, | { } 141 | "newton", NLINF, 0, | { } 142 | "simplex", NLINF, 0, | { } 143 | "simeq", LINF, 0, | { } 144 | "seidel", LINF, 0, | { } 145 | "_advance", KINF, 0, | { } 146 | "sparse", KINF, 0, | { } 147 | "derivimplicit", DERF, 0, /* name hard wired in deriv.c */ | { } 148 | "cnexp", DERF, 0, /* see solve.c */ | { } 149 | "clsoda", DERF | KINF, 1, /* Tolerance built in to | { } 150 | scopgear.c */ 151 | "after_cvode", 0, 0, | { } 152 | "cvode_t", 0, 0, | { } 153 | "cvode_t_v", 0, 0, | { } 154 | 0, 0, 0 | { 155 | }; | } make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 4%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/model.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/model.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c: In function 'openfiles': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c:145:36: warning: '%s' directive writing up to 8191 bytes into a region of size 8187 [-Wformat-overflow=] 145 | sprintf(modprefix, "%s", argv[1]); | ^~~~ In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:3, from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c:27: /usr/include/bits/stdio2.h:38:10: note: '__sprintf_chk' output between 1 and 8192 bytes into a destination of size 8187 38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 4%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/nrnunit.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/io.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/io.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/io.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/passn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/passn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/passn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:4: /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c: In function 'lookup': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:27:30: warning: array subscript has type 'char' [-Wchar-subscripts] 27 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:25:38: note: in definition of macro 'ITERATE' 25 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:27:30: warning: array subscript has type 'char' [-Wchar-subscripts] 27 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:25:58: note: in definition of macro 'ITERATE' 25 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c: In function 'install': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:69:31: warning: array subscript has type 'char' [-Wchar-subscripts] 69 | sl = symlist[s[0]]; | ~^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'flux': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:251:29: warning: unused variable 'isfunc' [-Wunused-variable] 251 | int isfunc; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'kinetic_implicit': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:706:30: warning: unused variable 'sparsedec' [-Wunused-variable] 706 | int i, nstate, flag, sparsedec, firsttrans, firsttrans1; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'massageconserve': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1024:15: warning: variable 'qv' set but not used [-Wunused-but-set-variable] 1024 | Item* qv; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'kinlist': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1160:15: warning: variable 'qv' set but not used [-Wunused-but-set-variable] 1160 | Item* qv; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'single_channel': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1590:13: warning: variable 'nstate' set but not used [-Wunused-but-set-variable] 1590 | int nstate, i; | ^~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1415:14: warning: 'astmt_last' defined but not used [-Wunused-variable] 1415 | static Item* astmt_last; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:120:12: warning: 'sparsedeclared' defined but not used [-Wunused-function] 120 | static int sparsedeclared(i) int i; { | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:110:14: warning: 'instance_loop' defined but not used [-Wunused-function] 110 | static char* instance_loop() { | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/units.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/units.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:76:1: warning: missing braces around initializer [-Wmissing-braces] 76 | { | ^ 77 | 1e-18, "atto", | { } 78 | 1e-15, "femto", | { } 79 | 1e-12, "pico", | { } 80 | 1e-9, "nano", | { } 81 | 1e-6, "micro", | { } 82 | 1e-3, "milli", | { } 83 | 1e-2, "centi", | { } 84 | 1e-1, "deci", | { } 85 | 1e1, "deka", | { } 86 | 1e2, "hecta", | { } 87 | 1e2, "hecto", | { } 88 | 1e3, "kilo", | { } 89 | 1e6, "mega", | { } 90 | 1e6, "meg", | { } 91 | 1e9, "giga", | { } 92 | 1e12, "tera", | { } 93 | 0.0, 0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'pu': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:660:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 660 | if(u > 1) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 662 | return(2); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'unit_stk_clean': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'punit': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:185:34: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 185 | for (i=usp; i!=unit_stack-1; --i) { | ~~~~~~~~~~^~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'unit_init': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/units1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/units1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units1.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/list.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 6%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.c:77:13: warning: 'pgm_name' defined but not used [-Wunused-variable] 77 | static char pgm_name[] = "nmodl"; | ^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 7%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'parout': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:224:16: warning: unused variable 'j' [-Wunused-variable] 224 | int i, j, ioncount, pointercount, gind, emit_check_table_thread; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'decode_limits': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:1377:16: warning: unused variable 'd1' [-Wunused-variable] 1377 | double d1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'decode_tolerance': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:1404:16: warning: unused variable 'd1' [-Wunused-variable] 1404 | double d1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'cvode_rw_cur': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2537:17: warning: variable 'sion' set but not used [-Wunused-but-set-variable] 2537 | Symbol* sion; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'net_receive': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2566:16: warning: unused variable 'b' [-Wunused-variable] 2566 | int i, b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'conductance_hint': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2744:15: warning: unused variable 'q' [-Wunused-variable] 2744 | Item* q; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:180:12: warning: 'cvode_index' defined but not used [-Wunused-variable] 180 | static int cvode_index; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:177:12: warning: 'cond_index' defined but not used [-Wunused-variable] 177 | static int cond_index; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 7%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/noccout.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 7%] Linking C executable ../../bin/modlunit cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/modlunit.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o CMakeFiles/modlunit.dir/__/modlunit/lex.c.o CMakeFiles/modlunit.dir/__/modlunit/consist.c.o CMakeFiles/modlunit.dir/__/modlunit/declare.c.o CMakeFiles/modlunit.dir/__/modlunit/init.c.o CMakeFiles/modlunit.dir/__/modlunit/io.c.o CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o CMakeFiles/modlunit.dir/__/modlunit/list.c.o CMakeFiles/modlunit.dir/__/modlunit/model.c.o CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o CMakeFiles/modlunit.dir/__/modlunit/passn.c.o CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o CMakeFiles/modlunit.dir/__/modlunit/units.c.o CMakeFiles/modlunit.dir/__/modlunit/units1.c.o CMakeFiles/modlunit.dir/__/modlunit/version.c.o -o ../../bin/modlunit make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 7%] Built target modlunit make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/rxdmath.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/rxdmath.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/rxdmath.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/rxdmath.dir/depend.internal". Scanning dependencies of target rxdmath make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 8%] Building C object src/nrnpython/CMakeFiles/rxdmath.dir/rxdmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Drxdmath_EXPORTS -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/rxdmath.dir/rxdmath.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxdmath.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 8%] Linking C shared library ../../lib/librxdmath.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E cmake_link_script CMakeFiles/rxdmath.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicc -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,librxdmath.so.0.0.0 -o ../../lib/librxdmath.so.0.0.0 CMakeFiles/rxdmath.dir/rxdmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E cmake_symlink_library ../../lib/librxdmath.so.0.0.0 ../../lib/librxdmath.so.0.0.0 ../../lib/librxdmath.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 8%] Built target rxdmath make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend.internal". Scanning dependencies of target rxd_cython_generated make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 7%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'vectorize_scan_for_func': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:403:13: warning: unused variable 'b' [-Wunused-variable] 403 | int b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:402:19: warning: unused variable 'qq' [-Wunused-variable] 402 | Item* q, *qq; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'defarg': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:425:25: warning: unused variable 'q3' [-Wunused-variable] 425 | Item *q3, *q; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'hocfunchack': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:959:15: warning: unused variable 'q' [-Wunused-variable] 959 | Item *q; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 8%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c: In function 'general_discon_adjust': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c:158:7: warning: unused variable 'i' [-Wunused-variable] 158 | int i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/partial.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/sens.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/simultan.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c: In function 'whileloop': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c:393:15: warning: variable 'cp' set but not used [-Wunused-but-set-variable] 393 | char *cp=0; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 8%] Generating ctng.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && /usr/bin/cython -2 ctng.pyx -o /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/ctng.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/cy_cpp_filt.sh /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/ctng.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' + file=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/ctng.cpp + mingw= + test x = x1 make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:3: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c: In function 'lookup': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:25:30: warning: array subscript has type 'char' [-Wchar-subscripts] 25 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.h:110:38: note: in definition of macro 'ITERATE' 110 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:25:30: warning: array subscript has type 'char' [-Wchar-subscripts] 25 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.h:110:58: note: in definition of macro 'ITERATE' 110 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c: In function 'install': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:65:31: warning: array subscript has type 'char' [-Wchar-subscripts] 65 | sl = symlist[s[0]]; | ~^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 10%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/units.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/units.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/units.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nmodl/units.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:76:1: warning: missing braces around initializer [-Wmissing-braces] 76 | { | ^ 77 | 1e-18, "atto", | { } 78 | 1e-15, "femto", | { } 79 | 1e-12, "pico", | { } 80 | 1e-9, "nano", | { } 81 | 1e-6, "micro", | { } 82 | 1e-3, "milli", | { } 83 | 1e-2, "centi", | { } 84 | 1e-1, "deci", | { } 85 | 1e1, "deka", | { } 86 | 1e2, "hecta", | { } 87 | 1e2, "hecto", | { } 88 | 1e3, "kilo", | { } 89 | 1e6, "mega", | { } 90 | 1e6, "meg", | { } 91 | 1e9, "giga", | { } 92 | 1e12, "tera", | { } 93 | 0.0, 0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'pu': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:660:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 660 | if(u > 1) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 662 | return(2); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'unit_stk_clean': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'punit': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:185:34: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 185 | for (i=usp; i!=unit_stack-1; --i) { | ~~~~~~~~~~^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'unit_init': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 10%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 9%] Generating surfaces.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && /usr/bin/cython -2 surfaces.pyx -o /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/surfaces.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/cy_cpp_filt.sh /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/surfaces.cpp + file=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/surfaces.cpp + mingw= + test x = x1 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 10%] Generating graphicsPrimitives.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && /usr/bin/cython -2 graphicsPrimitives.pyx -o /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/graphicsPrimitives.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/cy_cpp_filt.sh /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/graphicsPrimitives.cpp + file=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/graphicsPrimitives.cpp + mingw= + test x = x1 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 10%] Built target rxd_cython_generated make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend.internal". Scanning dependencies of target rx3dextensions_0 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/runpy.sh /usr/bin/python3.9 runpy /usr/bin/python3.9 running build_ext + echo runpy /usr/bin/python3.9 + pyexe=/usr/bin/python3.9 + mingw= + shift + test x = x1 + /usr/bin/python3.9 setup.py build_ext --build-lib=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib/python make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 10%] Built target rx3dextensions_0 make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend.internal". Scanning dependencies of target rx3d make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build make[2]: Nothing to be done for 'share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build'. make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 10%] Built target rx3d make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 10%] Linking C executable ../../bin/nocmodl cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nocmodl.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o CMakeFiles/nocmodl.dir/__/nmodl/init.c.o CMakeFiles/nocmodl.dir/__/nmodl/io.c.o CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o CMakeFiles/nocmodl.dir/__/nmodl/list.c.o CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o CMakeFiles/nocmodl.dir/__/nmodl/units.c.o CMakeFiles/nocmodl.dir/__/nmodl/version.c.o -o ../../bin/nocmodl make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 10%] Built target nocmodl make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 10%] Generating ../../../src/nrnoc/apcount.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c Thread Safe make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 11%] Generating ../../../src/nrnoc/exp2syn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 10%] Generating ../nrnoc/hocusr.h cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -E -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/neuron.h > neuron.tmp1 cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed /^#/d neuron.tmp1 > neuron.tmp2 cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/python3.9 /builddir/build/BUILD/nrn-7.8.1/src/oc/mk_hocusr_h.py < neuron.tmp2 > temp2hoc cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed s/\"nrnhoc_topology\"/\"topology\"/ temp2hoc > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 11%] Generating ../../../src/nrnoc/expsyn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 12%] Generating ../../../src/nrnoc/feature.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c Notice: VERBATIM blocks are not thread safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 12%] Generating ../../../src/nrnoc/hh.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 12%] Generating ../../../src/nrnoc/intfire1.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 12%] Generating ../../../src/nrnoc/intfire2.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 12%] Generating ../../../src/nrnoc/intfire4.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 12%] Generating ../../../src/nrnoc/netstim.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.mod Notice: ARTIFICIAL_CELL is a synonym for POINT_PROCESS which hints that it only affects and is affected by discrete events. As such it is not located in a section and is not associated with an integrator cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 12%] Generating ../../../src/nrnoc/oclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 12%] Generating ../../../src/nrnoc/passive.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 13%] Generating ../../../src/nrnoc/pattern.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.mod Notice: ARTIFICIAL_CELL is a synonym for POINT_PROCESS which hints that it only affects and is affected by discrete events. As such it is not located in a section and is not associated with an integrator cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c Notice: Use of POINTER is not thread safe. Notice: VERBATIM blocks are not thread safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 13%] Generating ../../../src/nrnoc/ppmark.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c Thread Safe make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 14%] Generating ../../../src/nrnoc/stim.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 14%] Generating ../../../src/nrnoc/svclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 14%] Generating ../../../src/nrnoc/syn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c Thread Safe make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 14%] Generating ../../../src/nrnoc/vclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c Notice: VERBATIM blocks are not thread safe Notice: LINEAR is not thread safe. make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nrniv_lib.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nrniv_lib.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nrniv_lib.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nrniv_lib.dir/depend.internal". Scanning dependencies of target nrniv_lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/apwindow.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/axis.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/bndedval.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/cbwidget.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/epsprint.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:38: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_real_radix2.c: In function 'int nrngsl_fft_real_radix2_transform(double*, size_t, size_t)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_real_radix2.c:91:7: warning: variable 'status' set but not used [-Wunused-but-set-variable] 91 | int status; | ^~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:39: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_hc_radix2.c: In function 'int nrngsl_fft_halfcomplex_radix2_transform(double*, size_t, size_t)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_hc_radix2.c:63:7: warning: variable 'status' set but not used [-Wunused-but-set-variable] 63 | int status; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp: In function 'void nrn_convlv(double*, long unsigned int, double*, long unsigned int, int, double*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:98:21: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 98 | for (i=1; i < n2; ++i) { | ~~^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:86:21: warning: unused variable 'x_' [-Wunused-variable] 86 | double scl, x_; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp: In function 'void nrn_spctrm(double*, double*, int, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:149:13: warning: variable 'ainv' set but not used [-Wunused-but-set-variable] 149 | double a, ainv, wfac, x_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:149:25: warning: unused variable 'x_' [-Wunused-variable] 149 | double a, ainv, wfac, x_; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/checkpnt.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'int LoadGIF(const char*, PICINFO*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:288:15: warning: variable 'ch' set but not used [-Wunused-but-set-variable] 288 | int ch, j, sbsize, cmtlen; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:156:22: warning: unused variable 'ch1' [-Wunused-variable] 156 | register byte ch, ch1, *origptr; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'int readImage(PICINFO*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:490:34: warning: unused variable 'picptr' [-Wunused-variable] 490 | register byte ch, ch1, *ptr1, *picptr; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:96:5: warning: 'BytesPerScanline' defined but not used [-Wunused-variable] 96 | BytesPerScanline, /* bytes per scanline in output raster */ | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'gif_image(char const*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:43:16: warning: 'image' may be used uninitialized in this function [-Wmaybe-uninitialized] 43 | return image; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graphvec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grglyph.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp: In member function 'virtual void HocMark::pick(ivCanvas*, const ivAllocation&, int, ivHit&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp:147:23: warning: unused variable 'x' [-Wunused-variable] 147 | Coord x = h.left(), y = h.bottom(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp:147:37: warning: unused variable 'y' [-Wunused-variable] 147 | Coord x = h.left(), y = h.bottom(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In function 'double ivoc_view_size(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:433:13: warning: unused variable 'i' [-Wunused-variable] 433 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'void Graph::ascii_save(std::ostream&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:1692:37: warning: unused variable 'j' [-Wunused-variable] 1692 | int j, jcnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'virtual void Graph::wholeplot(ivCoord&, ivCoord&, ivCoord&, ivCoord&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:1812:20: warning: unused variable 'gl' [-Wunused-variable] 1812 | GraphLine* gl; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'void Graph::cross_action(char, GPolyLine*, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:2064:22: warning: unused variable 'buf' [-Wunused-variable] 2064 | char buf[256]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'virtual void LineExtension::request(ivRequisition&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:3392:21: warning: unused variable 'eps' [-Wunused-variable] 3392 | const float eps = 1e-4; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/hocmark.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/htlist.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/idraw.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivoc.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp: In function 'bool nrn_optarg_on(const char*, int*, const char**)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:337:15: warning: unused variable 'a' [-Wunused-variable] 337 | char* a; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:332:13: warning: 'bool nrn_optarg_on(const char*, int*, char**)' declared 'static' but never defined [-Wunused-function] 332 | static bool nrn_optarg_on(const char* opt, int* argc, char** argv); | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:333:14: warning: 'char* nrn_optarg(const char*, int*, char**)' declared 'static' but never defined [-Wunused-function] 333 | static char* nrn_optarg(const char* opt, int* argc, char** argv); | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:334:12: warning: 'int nrn_optargint(const char*, int*, char**, int)' declared 'static' but never defined [-Wunused-function] 334 | static int nrn_optargint(const char* opt, int* argc, char** argv, int dflt); | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:32: /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:93:8: warning: when initialized here [-Wreorder] 93 | inline RandomInteger::RandomInteger(long low, long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:99:8: warning: when initialized here [-Wreorder] 99 | inline RandomInteger::RandomInteger(long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:106:8: warning: when initialized here [-Wreorder] 106 | inline RandomInteger::RandomInteger(RNG *gen) | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp: In function 'void steer_x(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp:731:17: warning: unused variable 's' [-Wunused-variable] 731 | Symbol* s = hoc_spop(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp: In function 'void* cons(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp:139:1: warning: control reaches end of non-void function [-Wreturn-type] 139 | } | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_fread(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:445:12: note: in expansion of macro 'FRead' 445 | FRead(xs,sizeof(short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:454:12: note: in expansion of macro 'FRead' 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:460:12: note: in expansion of macro 'FRead' 460 | FRead(xf,sizeof(float),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:472:12: note: in expansion of macro 'FRead' 472 | FRead(xi,sizeof(unsigned short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:483:12: note: in expansion of macro 'FRead' 483 | FRead(xc,sizeof(char),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:418:15: warning: unused variable 's' [-Wunused-variable] 418 | void* s = (void*)(vp->vec()); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_vwrite(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:532:12: note: in expansion of macro 'FWrite' 532 | FWrite(xi,sizeof(int),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:541:12: note: in expansion of macro 'FWrite' 541 | FWrite(x,sizeof(double),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:551:12: note: in expansion of macro 'FWrite' 551 | FWrite(xf,sizeof(float),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:577:12: note: in expansion of macro 'FWrite' 577 | FWrite(x,sizeof(unsigned short),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:602:12: note: in expansion of macro 'FWrite' 602 | FWrite(x,sizeof(char),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_vread(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:658:12: note: in expansion of macro 'FRead' 658 | FRead(xi,sizeof(int),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:668:12: note: in expansion of macro 'FRead' 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__elem(i),double) } | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:677:12: note: in expansion of macro 'FRead' 677 | FRead(xf,sizeof(float),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | } | ~ 682 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 683 | break; | ~~~~~~ 684 | } | ~ 685 | | 686 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 689 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 691 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 692 | | 693 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:694:12: note: in expansion of macro 'FRead' 694 | FRead(xi,sizeof(unsigned short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | } | ~ 682 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 683 | break; | ~~~~~~ 684 | } | ~ 685 | | 686 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 689 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 691 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 692 | | 693 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (i=0;ielem(i) = double(xi[i]/sf +min); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 698 | } | ~ 699 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 700 | break; | ~~~~~~ 701 | } | ~ 702 | | 703 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 704 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 705 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 706 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 707 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 708 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 709 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 710 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:710:12: note: in expansion of macro 'FRead' 710 | FRead(xc,sizeof(char),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:614:15: warning: unused variable 's' [-Wunused-variable] 614 | void* s = (void*)(vp->vec()); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'Object** v_hist(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:1127:16: warning: unused variable 'high' [-Wunused-variable] 1127 | double high = start+step*size; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_indwhere(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:1755:16: warning: unused variable 'm' [-Wunused-variable] 1755 | int i, iarg, m=0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'v_medfltr(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:3206:13: warning: 'operator delete[](void*)' called on pointer returned from a mismatched allocation function [-Wmismatched-new-delete] 3206 | delete [] res; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:3191:33: note: returned from 'calloc' 3191 | double *res = (double *)calloc(n,(unsigned)sizeof(double)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'call_simplex(double*, int, IvocVect*, IvocVect*, char*, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:2694:17: warning: 'retval' may be used uninitialized in this function [-Wmaybe-uninitialized] 2694 | return (retval); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp: In function 'int nrn_feround(int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp:37:13: warning: unused variable 'm' [-Wunused-variable] 37 | int m; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/objcmd.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbrowsr.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp: In member function 'virtual void OcBox::box_append(OcGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp:577:20: warning: unused variable 'wk' [-Wunused-variable] 577 | WidgetKit& wk = *WidgetKit::instance(); | ^~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp: In member function 'virtual void OcDeck::box_append(OcGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp:293:20: warning: unused variable 'wk' [-Wunused-variable] 293 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp:294:20: warning: unused variable 'lk' [-Wunused-variable] 294 | LayoutKit& lk = *LayoutKit::instance(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp: In function 'bool makePath(const string&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp:586:21: warning: comparison of integer expressions of different signedness: 'int' and 'const size_type' {aka 'const long unsigned int'} [-Wsign-compare] 586 | if (pos == std::string::npos) | ~~~~^~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:84:13: warning: 'void readmore()' defined but not used [-Wunused-function] 84 | static void readmore() { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:40:24: warning: 'filequeue' defined but not used [-Wunused-variable] 40 | static CopyStringList* filequeue; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:16:14: warning: 'help_pipe' defined but not used [-Wunused-variable] 16 | static FILE* help_pipe; | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oclist.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp: In member function 'virtual void OcFullMatrix::solv(IvocVect*, IvocVect*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp:290:43: warning: comparison of integer expressions of different signedness: 'u_int' {aka 'unsigned int'} and 'int' [-Wsign-compare] 290 | }else if (use_lu && lu_factor_->m == nrow()) { | ~~~~~~~~~~~~~~^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocnoiv1.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocobserv.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocpicker.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocpointer.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocptrvector.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/octimer.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/rect.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/rubband.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp: In member function 'virtual void Scene::save_class(std::ostream&, const char*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp:870:14: warning: unused variable 'count' [-Wunused-variable] 870 | long count = views_->count(); | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In constructor 'PrintableWindowManager::PrintableWindowManager()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1206:15: warning: variable 'wp1' set but not used [-Wunused-but-set-variable] 1206 | Coord wp1; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1246:38: warning: unused variable 'mother' [-Wunused-variable] 1246 | Menu* mbar, *mprint, *mses, *mother; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PrintableWindowManager::reconfigured(PrintableWindow*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1642:15: warning: unused variable 'r' [-Wunused-variable] 1642 | Coord r = l + w->width_pw(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1644:15: warning: unused variable 't' [-Wunused-variable] 1644 | Coord t = b + w->height_pw(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PrintableWindowManager::reconfigured(JavaWindow*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1672:15: warning: unused variable 'r' [-Wunused-variable] 1672 | Coord r = l + w->w(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1674:15: warning: unused variable 't' [-Wunused-variable] 1674 | Coord t = b + w->h(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PWMImpl::common_print(ivPrinter*, bool, bool)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:2017:23: warning: unused variable 'sfac' [-Wunused-variable] 2017 | float sfac; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'PWMImpl::save_list(int, ScreenItem**, std::basic_ostream >&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:3228:50: warning: 'ocg' may be used uninitialized in this function [-Wmaybe-uninitialized] 3228 | ocg->save(o); | ~~~~~~~~~^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp: In function 'Object** l_alias_list(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp:169:22: warning: unused variable 'buf' [-Wunused-variable] 169 | char buf[256]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp:167:13: warning: unused variable 'id' [-Wunused-variable] 167 | int id = (*po)->index; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp: In member function 'virtual void SpecView::execute()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:691:14: warning: unused variable 'bx' [-Wunused-variable] 691 | bool bx = var_pair_chooser("X size", x1, x2, v->canvas()->window()); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:692:14: warning: unused variable 'by' [-Wunused-variable] 692 | bool by = var_pair_chooser("Y size", y1, y2, v->canvas()->window()); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp: In member function 'void OcViewGlyph::viewmenu(ivGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:761:28: warning: unused variable 'wk' [-Wunused-variable] 761 | WidgetKit& wk = *WidgetKit::instance(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp: In member function 'virtual void SymChooser::reread()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp:265:21: warning: unused variable 'fc' [-Wunused-variable] 265 | SymChooserImpl& fc = *impl_; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp: In member function 'void SymChooserImpl::accept_browser_index(int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp:627:13: warning: unused variable 'sym' [-Wunused-variable] 627 | Symbol* sym = dir->symbol(i); | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp: In function 'bool str_chooser(const char*, char*, ivWindow*, ivCoord, ivCoord)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp:191:20: warning: unused variable 'l' [-Wunused-variable] 191 | LayoutKit& l = *LayoutKit::instance(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp: In static member function 'static bool Graph::label_chooser(const char*, char*, GLabel*, ivCoord, ivCoord)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp:350:20: warning: unused variable 'l' [-Wunused-variable] 350 | LayoutKit& l = *LayoutKit::instance(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp: In member function 'virtual void XYView::transform(ivTransformer&, const ivAllocation&, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:478:26: warning: unused variable 'nx' [-Wunused-variable] 478 | const Allotment& nx = n.x_allotment(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:479:26: warning: unused variable 'ny' [-Wunused-variable] 479 | const Allotment& ny = n.y_allotment(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:480:17: warning: unused variable 'v' [-Wunused-variable] 480 | XYView* v = (XYView*)this; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp: In member function 'virtual void View::transform(ivTransformer&, const ivAllocation&, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:554:15: warning: unused variable 'sy' [-Wunused-variable] 554 | float sy = ay.span()/XYView::height(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/field.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xdep.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In function 'void set_format()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:1835:22: warning: unused variable 'len' [-Wunused-variable] 1835 | static Coord len; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'virtual void HocEditorForItem::val_inc(const ivEvent&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2213:15: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 2213 | if (i == strlen(buf)) { | ~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In constructor 'StepperMenu::StepperMenu()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2394:20: warning: unused variable 'k' [-Wunused-variable] 2394 | WidgetKit& k = *WidgetKit::instance(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'void HocStateButton::button_action()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2855:26: warning: unused variable 't' [-Wunused-variable] 2855 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2861:26: warning: unused variable 't' [-Wunused-variable] 2861 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'void HocStateMenuItem::button_action()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:3006:26: warning: unused variable 't' [-Wunused-variable] 3006 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:3012:26: warning: unused variable 't' [-Wunused-variable] 3012 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:1835:22: warning: 'len' defined but not used [-Wunused-variable] 1835 | static Coord len; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:887:13: warning: 'void saveMenuFile()' defined but not used [-Wunused-function] 887 | static void saveMenuFile() { | ^~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbs.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbs.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbs.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'virtual void BBSImpl::execute(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:290:23: warning: unused variable 's' [-Wunused-variable] 290 | char* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:292:21: warning: unused variable 'i' [-Wunused-variable] 292 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'virtual bool BBSImpl::working(int&, double&, int&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:390:29: warning: unused variable 'wid' [-Wunused-variable] 390 | int wid = upkint(); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:404:7: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized] 404 | printf("working n_=%d: after %d try elapsed %g sec got result for %d id=%d x=%g\n", | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | n_, cnt, time()-t, working_id_, id, x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'BBS::take(char const*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:476:23: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized] 476 | printf("end take |%s| elapsed %g from %g\n", key, time()-t, t); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsdirect.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslocal.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:13, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslocal.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp: In member function 'virtual char* BBSLocal::upkpickle(size_t*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:89:19: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 89 | assert(*n == len); | ~~~^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hocassrt.h:19:28: note: in definition of macro 'assert' 19 | # define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslsrv.cpp: In member function 'void BBSLocalServer::post(const char*, MessageValue*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslsrv.cpp:320:31: warning: variable 'm' set but not used [-Wunused-but-set-variable] 320 | MessageList::iterator m = messages_->insert( | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv2.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv2.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbssrv2mpi.cpp: In member function 'void BBSDirectServer::post(const char*, bbsmpibuf*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbssrv2mpi.cpp:235:39: warning: variable 'm' set but not used [-Wunused-but-set-variable] 235 | MessageList::iterator m = messages_->insert( | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsrcli.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsrcli.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp: In member function 'virtual void BBSClient::take(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:233:13: warning: unused variable 'bufid' [-Wunused-variable] 233 | int bufid; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp: In member function 'virtual void BBSClient::start()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:326:15: warning: unused variable 'client' [-Wunused-variable] 326 | char* client = 0; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:327:13: warning: unused variable 'tid' [-Wunused-variable] 327 | int tid; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:328:13: warning: unused variable 'n' [-Wunused-variable] 328 | int n; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'double save_test_bin(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:629:22: warning: unused variable 'ss' [-Wunused-variable] 629 | BBSaveState* ss = (BBSaveState*)v; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:174: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'double restore_test_bin(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:899:61: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 899 | nrn_assert(fread(buf, sizeof(char), global_size, f) == global_size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:920:60: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 920 | nrn_assert(fread(buf, sizeof(char), sz, f) == sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void tqcallback(const TQItem*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1142:33: warning: unused variable 'dl' [-Wunused-variable] 1142 | DEList *dl=0, *dl1=0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1172:42: warning: unused variable 'tt' [-Wunused-variable] 1172 | int srcid, i; double ts, tt; PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::del_pp2de()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1360:17: warning: unused variable 'dl' [-Wunused-variable] 1360 | DEList* dl, *dl1; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'int BBSaveState::counts(int**, int**)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1460:58: warning: unused variable 'base' [-Wunused-variable] 1460 | NrnHashIterateKeyValue(Int2Int, base2spgid, int, base, int, spgid) { | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1460:69: warning: unused variable 'spgid' [-Wunused-variable] 1460 | NrnHashIterateKeyValue(Int2Int, base2spgid, int, base, int, spgid) { | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:90:31: note: in definition of macro 'NrnHashIterateKeyValue' 90 | Value value = (*p__).second; \ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::mech(Prop*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1796:32: warning: unused variable 'd' [-Wunused-variable] 1796 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1798:32: warning: unused variable 'd' [-Wunused-variable] 1798 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1810:40: warning: unused variable 'd' [-Wunused-variable] 1810 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1812:40: warning: unused variable 'd' [-Wunused-variable] 1812 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1818:40: warning: unused variable 'd' [-Wunused-variable] 1818 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1820:40: warning: unused variable 'd' [-Wunused-variable] 1820 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::netrecv_pp(Point_process*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1835:13: warning: unused variable 'type' [-Wunused-variable] 1835 | int type = pp->prop->type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void all2allv_int2(int*, int*, int*, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1965:13: warning: unused variable 'i' [-Wunused-variable] 1965 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void all2allv_dbl1(int*, int*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1990:13: warning: unused variable 'i' [-Wunused-variable] 1990 | int i, size; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void scatteritems()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2036:68: warning: unused variable 'gid' [-Wunused-variable] 2036 | NrnHashIterateKeyValue(Int2DblList, src2send, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2070:60: warning: unused variable 'gid' [-Wunused-variable] 2070 | NrnHashIterateKeyValue(Int2DblList, src2send, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2015:16: warning: unused variable 'gid' [-Wunused-variable] 2015 | int i, gid, host; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2016:18: warning: unused variable 'dl' [-Wunused-variable] 2016 | DblList* dl; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void construct_presyn_queue()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' bbsavestate.cpp:2194:48: warning: unused variable 't2' [-Wunused-variable] 2194 | double t2 = dl->item(j); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:13: warning: unused variable 'gid' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:35: warning: unused variable 'ts' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:39: warning: unused variable 'tt' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void bbss_queuecheck()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2464:70: warning: unused variable 'gid' [-Wunused-variable] 2464 | NrnHashIterateKeyValue(Int2DblList, queuecheck_gid2unc, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbssrv.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 26%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bgpmeminfo.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/classreg.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/classreg.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/classreg.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cachevec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cachevec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodestb.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodestb.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp: In function 'void deliver_net_events(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:43:13: warning: unused variable 'i' [-Wunused-variable] 43 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:38:13: warning: 'void check_thresh(NrnThread*)' declared 'static' but never defined [-Wunused-function] 38 | static void check_thresh(NrnThread*); | ^~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvtrset.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodeobj.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodeobj.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'double use_mxb(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:345:19: warning: unused variable 'd' [-Wunused-variable] 345 | NetCvode* d = (NetCvode*)v; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'double cache_efficient(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:358:19: warning: unused variable 'd' [-Wunused-variable] 358 | NetCvode* d = (NetCvode*)v; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'void Cvode::activate_maxstate(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:921:21: warning: unused variable 'i' [-Wunused-variable] 921 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'int Cvode::cvode_init(double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1055:13: warning: unused variable 'iter' [-Wunused-variable] 1055 | int iter; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'int Cvode::daspk_advance_tn()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1334:13: warning: unused variable 'flag' [-Wunused-variable] 1334 | int flag, err; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1335:16: warning: unused variable 'tin' [-Wunused-variable] 1335 | double tin; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* msolve_thread_part2(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1473:13: warning: unused variable 'i' [-Wunused-variable] 1473 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* f_thread_ms_part2(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1569:13: warning: unused variable 'i' [-Wunused-variable] 1569 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* f_thread_ms_part3(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1575:13: warning: unused variable 'i' [-Wunused-variable] 1575 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:689:14: warning: 'void* msetup_thread(NrnThread*)' declared 'static' but never defined [-Wunused-function] 689 | static void* msetup_thread(NrnThread*); | ^~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/datapath.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/datapath.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/datapath.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/datapath.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'PathValue* HocDataPathImpl::found_v(void*, const char*, Symbol*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:265:13: warning: unused variable 'len' [-Wunused-variable] 265 | int len = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'void HocDataPathImpl::search_vectors()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:424:16: warning: unused variable 'cnt' [-Wunused-variable] 424 | int i, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'void HocDataPathImpl::search(Node*, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:483:13: warning: unused variable 'i' [-Wunused-variable] 483 | int i, cnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:483:16: warning: unused variable 'cnt' [-Wunused-variable] 483 | int i, cnt; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cxprop.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'void read_temp1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:86:13: warning: unused variable 'nscan' [-Wunused-variable] 86 | int nscan, maxtype, imech, nmech, type, sz1, sz2, ntget, ith, nth, i, j, cnt, seq; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'void nrn_cache_prop_realloc()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:606:21: warning: unused variable 'j' [-Wunused-variable] 606 | int j, cnt = ml->nodecount; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:585:20: warning: unused variable 'type' [-Wunused-variable] 585 | int i, it, type; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/finithnd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/finithnd.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp: In constructor 'geometry3d_Cylinder::geometry3d_Cylinder(double, double, double, double, double, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:441:52: warning: 'geometry3d_Cylinder::cz' will be initialized after [-Wreorder] 441 | double r, rr, axisx, axisy, axisz, cx, cy, cz, h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:441:19: warning: 'double geometry3d_Cylinder::rr' [-Wreorder] 441 | double r, rr, axisx, axisy, axisz, cx, cy, cz, h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:444:1: warning: when initialized here [-Wreorder] 444 | geometry3d_Cylinder::geometry3d_Cylinder(double x0, double y0, double z0, | ^~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/hocmech.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp: In function 'void make_pointprocess()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp:311:21: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 311 | for (i=0; i < s2->s_varn; ++i) { | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp:252:14: warning: unused variable 'buf' [-Wunused-variable] 252 | char buf[256]; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/glinerec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp: In member function 'void GraphVector::record_install()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp:165:18: warning: unused variable 'gvr' [-Wunused-variable] 165 | GVectorRecord* gvr = new GVectorRecord(this); | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/impedanc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/impedanc.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/kssingle.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp: In member function 'void KSSingle::state(Node*, double*, Datum*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp:246:13: warning: unused variable 'i' [-Wunused-variable] 246 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp: In member function 'void KSSingle::cv_update(Node*, double*, Datum*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp:262:13: warning: unused variable 'i' [-Wunused-variable] 262 | int i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/linmod.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/linmod.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/linmod.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/linmod1.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/linmod1.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/kschan.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/kschan.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_vres(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:292:17: warning: unused variable 'ks' [-Wunused-variable] 292 | KSChan* ks = (KSChan*)v; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_rseed(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:301:17: warning: unused variable 'ks' [-Wunused-variable] 301 | KSChan* ks = (KSChan*)v; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_pr(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:653:17: warning: unused variable 's' [-Wunused-variable] 653 | Symbol* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:655:16: warning: unused variable 'j' [-Wunused-variable] 655 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In constructor 'KSChan::KSChan(Object*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:874:13: warning: unused variable 'i' [-Wunused-variable] 874 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setname(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:990:46: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 990 | if (!is_point()) for (i=0; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setion(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1202:40: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1202 | for (i=2+io; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1240:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1240 | for (i=1 + io; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::free1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1270:29: warning: deleting object of polymorphic class type 'KSIv' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 1270 | if (iv_relation_) { delete iv_relation_; iv_relation_ = NULL; } | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setcond()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1289:29: warning: deleting object of polymorphic class type 'KSIv' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 1289 | if (iv_relation_) { delete iv_relation_; } | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::settype(KSTransition*, int, const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1443:14: warning: variable 'move' set but not used [-Wunused-but-set-variable] 1443 | bool move = true; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::ion_consist()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2249:18: warning: unused variable 'sec' [-Wunused-variable] 2249 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::state_consist(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2308:18: warning: unused variable 'sec' [-Wunused-variable] 2308 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'virtual void KSChan::cv_sc_update(int, Node**, double**, Datum**, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2910:16: warning: unused variable 'j' [-Wunused-variable] 2910 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2911:17: warning: unused variable 's' [-Wunused-variable] 2911 | double* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::usetable(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:3043:13: warning: unused variable 'i' [-Wunused-variable] 3043 | int i; | ^ In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2: In function 'strncpy', inlined from 'kst_ligand(void*)' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:633:10: /usr/include/bits/string_fortified.h:95:34: warning: 'strncpy' specified bound 20 equals destination size [-Wstringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h: In constructor 'MatrixMap::MatrixMap(OcMatrix&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:63:18: warning: 'MatrixMap::ptree_' will be initialized after [-Wreorder] 63 | double** ptree_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:62:18: warning: 'double** MatrixMap::pm_' [-Wreorder] 62 | double** pm_; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:10:1: warning: when initialized here [-Wreorder] 10 | MatrixMap::MatrixMap(Matrix& mat) | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h: In constructor 'MatrixMap::MatrixMap(OcMatrix*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:63:18: warning: 'MatrixMap::ptree_' will be initialized after [-Wreorder] 63 | double** ptree_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:62:18: warning: 'double** MatrixMap::pm_' [-Wreorder] 62 | double** pm_; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:14:1: warning: when initialized here [-Wreorder] 14 | MatrixMap::MatrixMap(Matrix* mat) | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp: In member function 'void MatrixMap::alloc(int, int, Node**, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:50:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 50 | for (int k = 0; k < nonzero_i.size(); k++) { | ~~^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:41:13: warning: unused variable 'nrow' [-Wunused-variable] 41 | int nrow = m_.nrow(); | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:42:13: warning: unused variable 'ncol' [-Wunused-variable] 42 | int ncol = m_.ncol(); | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp: In member function 'bool NrnProperty::more_var()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp:138:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 138 | if (npi_->iterator_ >= npi_->sym_->s_varn) { | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/multisplit.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::multisplit_clear()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:523:29: warning: unused variable 'ms' [-Wunused-variable] 523 | MultiSplit* ms; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::prstruct()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1773:23: warning: unused variable 'nd' [-Wunused-variable] 1773 | Node* nd = ms->nd[0]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::multisplit_nocap_v_part3(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1956:16: warning: unused variable 'j' [-Wunused-variable] 1956 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In destructor 'virtual ReducedTree::~ReducedTree()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2454:13: warning: unused variable 'i' [-Wunused-variable] 2454 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitThread::bksub_backbone(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:19: warning: unused variable 'ip' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:23: warning: unused variable 'ip1' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:28: warning: unused variable 'ip2' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::pmat(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3291:12: warning: unused variable 'ip' [-Wunused-variable] 3291 | int it, i, ip, is; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::pmatf(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3321:12: warning: unused variable 'ip' [-Wunused-variable] 3321 | int it, i, ip, is; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'MultiSplitControl::multisplit(Section*, double, int, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:411:38: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized] 411 | hoc_execerror(s, secname(root->sec)); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/netpar.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/netpar.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrn_cleanup_presyn(PreSyn*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:964:17: warning: unused variable 'pss' [-Wunused-variable] 964 | PreSyn* pss; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrnmpi_gid_clear(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:980:17: warning: unused variable 'ps' [-Wunused-variable] 980 | PreSyn* ps, *psi; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrn_gidout_iter(PFIO)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1508:17: warning: unused variable 'ps' [-Wunused-variable] 1508 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'size_t nrncore_netpar_bytes()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1529:11: warning: unused variable 'ps' [-Wunused-variable] 1529 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrncore_netpar_cellgroups_helper(nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1580:11: warning: unused variable 'ps' [-Wunused-variable] 1580 | PreSyn* ps; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In constructor 'NonLinImpRep::NonLinImpRep()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:206:16: warning: unused variable 'j' [-Wunused-variable] 206 | int i, j, ieq, cnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:206:19: warning: unused variable 'ieq' [-Wunused-variable] 206 | int i, j, ieq, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'void NonLinImpRep::dsds()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:520:64: warning: unused variable 'nd' [-Wunused-variable] 520 | for (in = 0; in < ml->nodecount; ++in) { Node* nd = ml->nodelist[in]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'void NonLinImpRep::ode(int, Memb_list*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:557:13: warning: unused variable 'i' [-Wunused-variable] 557 | int i, nc; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:557:16: warning: variable 'nc' set but not used [-Wunused-but-set-variable] 557 | int i, nc; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'NonLinImpRep::gapsolve()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'jb' may be used uninitialized in this function [-Wmaybe-uninitialized] 619 | cmplx_spSolve(m_, rb-1, rx1-1, jb-1, jx1-1); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'rb' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'jx1' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'rx1' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:626:61: warning: 'jx' may be used uninitialized in this function [-Wmaybe-uninitialized] 626 | double err = fabs(rx1[i] - rx[i]) + fabs(jx1[i] - jx[i]); | ~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:626:38: warning: 'rx' may be used uninitialized in this function [-Wmaybe-uninitialized] 626 | double err = fabs(rx1[i] - rx[i]) + fabs(jx1[i] - jx[i]); | ~~~~^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/netcvode.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In static member function 'static DiscreteEvent* PlayRecordEvent::savestate_read(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:341:24: warning: unused variable 'de' [-Wunused-variable] 341 | DiscreteEvent* de = nil; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::del_cv_memb_list(Cvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1438:13: warning: unused variable 'i' [-Wunused-variable] 1438 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::distribute_dinfo(int*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1500:13: warning: unused variable 'i' [-Wunused-variable] 1500 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'bool NetCvode::init_global()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1800:50: warning: unused variable 'z' [-Wunused-variable] 1800 | CvodeThreadData& z = cv.ctd_[0]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::init_events()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:2802:16: warning: unused variable 'fifodelay' [-Wunused-variable] 2802 | double fifodelay; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In static member function 'static DiscreteEvent* SelfEvent::savestate_read(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3267:45: warning: unused variable 'iml' [-Wunused-variable] 3267 | int ppindex, ncindex, moff, pptype, iml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3269:17: warning: unused variable 'obj' [-Wunused-variable] 3269 | Object* obj; | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'int NetCvode::pgvts_event(double&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3578:13: warning: unused variable 'rank' [-Wunused-variable] 3578 | int rank, op, err, init; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::re_init(double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3913:19: warning: unused variable 'k' [-Wunused-variable] 3913 | int i, j, k, l; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3913:22: warning: unused variable 'l' [-Wunused-variable] 3913 | int i, j, k, l; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCon* NetCvode::install_deliver(double*, Section*, Object*, Object*, double, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4485:13: warning: unused variable 'i' [-Wunused-variable] 4485 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'virtual void WatchCondition::pgvts_deliver(double, NetCvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5400:20: warning: unused variable 'nt' [-Wunused-variable] 5400 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'virtual void STECondition::pgvts_deliver(double, NetCvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5417:20: warning: unused variable 'nt' [-Wunused-variable] 5417 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In function 'void nrnthread_trajectory_values(int, int, void**, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5736:9: warning: unused variable 'i_trajec' [-Wunused-variable] 5736 | int i_trajec = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::deliver_net_events(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5831:20: warning: unused variable 'tt' [-Wunused-variable] 5831 | double tm, tt, tsav; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::vec_remove()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6198:19: warning: unused variable 'iv' [-Wunused-variable] 6198 | IvocVect* iv = vector_arg(1); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::playrec_setup()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6207:17: warning: unused variable 'px' [-Wunused-variable] 6207 | double* px; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'double NetCvode::state_magnitudes()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6378:25: warning: unused variable 'ms' [-Wunused-variable] 6378 | double* ms; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6346:13: warning: unused variable 'i' [-Wunused-variable] 6346 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::maxstate_analyse()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6441:23: warning: unused variable 'n' [-Wunused-variable] 6441 | int i, it, j, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::error_weights()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4236:35: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] 4236 | gcv_->states(vp + j); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::acor()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4265:35: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] 4265 | gcv_->states(vp + j); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::maxstate_analyse()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6460:43: warning: 'msi' may be used uninitialized in this function [-Wmaybe-uninitialized] 6460 | maxstate_analyze_1(it, *gcv_, msi, gcv_->ctd_[it]); | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrndae.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h: In constructor 'NrnDAE::NrnDAE(OcMatrix*, IvocVect*, IvocVect*, int, Node**, IvocVect*, void (*)(void*), void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:186:14: warning: 'NrnDAE::yptmp_' will be initialized after [-Wreorder] 186 | Vect yptmp_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:183:14: warning: 'IvocVect NrnDAE::cyp_' [-Wreorder] 183 | Vect cyp_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:137:1: warning: when initialized here [-Wreorder] 137 | NrnDAE::NrnDAE(Matrix* cmat, Vect* const yvec, Vect* const y0, int nnode, | ^~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:183:14: warning: 'NrnDAE::cyp_' will be initialized after [-Wreorder] 183 | Vect cyp_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:139:12: warning: 'void (* NrnDAE::f_init_)(void*)' [-Wreorder] 139 | void (*f_init_)(void* data); | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:137:1: warning: when initialized here [-Wreorder] 137 | NrnDAE::NrnDAE(Matrix* cmat, Vect* const yvec, Vect* const y0, int nnode, | ^~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndaspk.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndaspk.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp: In member function 'int Daspk::init()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:233:13: warning: unused variable 'i' [-Wunused-variable] 233 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:64:12: warning: 'int msolve(IDAMem, N_Vector, N_Vector, N_Vector, N_Vector)' declared 'static' but never defined [-Wunused-function] 64 | static int msolve(IDAMem mem, N_Vector b, N_Vector ycur, N_Vector ypcur, | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:216:15: warning: 'double check(double, Daspk*)' defined but not used [-Wunused-function] 216 | static double check(double t, Daspk* ida) { | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:111: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnsection_mapping.h: In member function 'CellMapping* NrnMappingInfo::get_cell_mapping(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnsection_mapping.h:119:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 119 | for(int i = 0; i < mapping.size(); i++) { | ~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'size_t part1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:275:22: warning: unused variable 'tml' [-Wunused-variable] 275 | NrnThreadMembList* tml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void datumtransform(nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:730:16: warning: unused variable 'nt' [-Wunused-variable] 730 | NrnThread& nt = nrn_threads[ith]; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/tqueue.h:58, from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/netcvode.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:109: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void write_contiguous_art_data(double**, int, int, FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1081:14: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 1081 | assert(n == szitem); | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_2(int, int*&, double*&, double*&, double*&, double*&, double*&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1257:7: warning: unused variable 'n' [-Wunused-variable] 1257 | int n = nt.end; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_3(int, int, int*&, double*&, int*&, int*&, double*&, double*&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1359:14: warning: unused variable 'nt' [-Wunused-variable] 1359 | NrnThread& nt = nrn_threads[tid]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_corepointer(int, int&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1397:14: warning: unused variable 'nt' [-Wunused-variable] 1397 | NrnThread& nt = nrn_threads[tid]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void write_nrnthread_task(const char*, nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1696:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 1696 | for (int i = 0; i < iRecvVec.size(); ++i) | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int* datum2int(int, Memb_list*, NrnThread&, nrncore_CellGroup&, nrncore_DatumIndices&, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1712:12: warning: unused variable 'd' [-Wunused-variable] 1712 | Datum* d = ml->pdata[i]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void* get_coreneuron_handle()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1952:15: warning: ignoring return value of 'char* getcwd(char*, size_t)' declared with attribute 'warn_unused_result' [-Wunused-result] 1952 | getcwd(pwd, FILENAME_MAX); | ~~~~~~^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1075:13: warning: 'void write_contiguous_art_data(double**, int, int, FILE*)' defined but not used [-Wunused-function] 1075 | static void write_contiguous_art_data(double** data, int nitem, int szitem, FILE* f) { | ^~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp: In function 'void mech_menu(Prop*, double, int, const char*, MechSelector*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:291:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 291 | for (j=0; j < sym->s_varn; j++ ) { | ~~^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp: In function 'void point_menu(Object*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:459:47: warning: array subscript has type 'char' [-Wchar-subscripts] 459 | psym = pointsym[pnt_map[pp->prop->type]]; | ~~~~~~~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:476:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 476 | for (k=0; k < psym->s_varn; k++ ) { | ~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:488:44: warning: unused variable 'a' [-Wunused-variable] 488 | Arrayinfo* a = vsym->arayinfo; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DNRNCMAKE -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -DUSE_LIBNRNPYTHON_MAJORMINOR=0 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnpy.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 32%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnrtime.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 32%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnste.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnste.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c: In function 'N_VNew_NrnSerialLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c:160:21: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] 160 | NV_DATA_S_LD(v) = data; /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c: In function 'N_VClone_NrnSerialLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c:364:21: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] 364 | NV_DATA_S_LD(v) = data; make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c: In function 'N_VNew_NrnThread': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:175:30: warning: unused variable 'content' [-Wunused-variable] 175 | N_VectorContent_NrnThread* content; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c: In function 'N_VWL2Norm_NrnThread': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:701:12: warning: variable 'N' set but not used [-Wunused-but-set-variable] 701 | long int N; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:781:14: warning: 'vminquotient' defined but not used [-Wunused-function] 781 | static void* vminquotient(NrnThread* nt) { | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:366:13: warning: 'pr' defined but not used [-Wunused-function] 366 | static void pr(N_Vector x) { N_VPrint_NrnThread(x); } | ^~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c: In function 'N_VNew_NrnThreadLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:175:32: warning: unused variable 'content' [-Wunused-variable] 175 | N_VectorContent_NrnThreadLD* content; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c: In function 'N_VWL2Norm_NrnThreadLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:700:12: warning: variable 'N' set but not used [-Wunused-but-set-variable] 700 | long int N; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:780:14: warning: 'vminquotient' defined but not used [-Wunused-function] 780 | static void* vminquotient(NrnThread* nt) { | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:365:13: warning: 'pr' defined but not used [-Wunused-function] 365 | static void pr(N_Vector x) { N_VPrint_NrnThreadLD(x); } | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In function 'double multisplit(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:616:13: warning: unused variable 'reducedtree_host' [-Wunused-variable] 616 | int reducedtree_host = 0; | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In member function 'virtual void BBSImpl::return_args(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1304:13: warning: variable 'i' set but not used [-Wunused-but-set-variable] 1304 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1308:13: warning: unused variable 'wid' [-Wunused-variable] 1308 | int wid = upkint(); | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In function 'broadcast(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:864:38: warning: 's' may be used uninitialized in this function [-Wmaybe-uninitialized] 864 | nrnmpi_char_broadcast(s, cnt, srcid); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/occvode.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/occvode.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/occvode.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/occvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::new_no_cap_memb(CvodeThreadData&, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:277:20: warning: unused variable 'ml' [-Wunused-variable] 277 | Memb_list* ml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::fun_thread_ms_part1(double, double*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:715:26: warning: unused variable 'z' [-Wunused-variable] 715 | CvodeThreadData& z = ctd_[nt->id]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::before_after(BAMechList*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:764:16: warning: unused variable 'j' [-Wunused-variable] 764 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::acor(double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:989:20: warning: unused variable 'nt' [-Wunused-variable] 989 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'Cvode::new_no_cap_memb(CvodeThreadData&, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:298:35: warning: 'ncm' may be used uninitialized in this function [-Wmaybe-uninitialized] 298 | ncm->next = new CvMembList(); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ocjump.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocjump.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ppshape.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ppshape.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp: In function 'void pr_memb(int, Memb_list*, int*, NrnThread&, FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp:30:7: warning: unused variable 'psize' [-Wunused-variable] 30 | int psize = nrn_prop_dparam_size_[type]; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/pysecname2sec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/partrans.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/partrans.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: In function 'void nrn_partrans_update_ptrs()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:373:16: warning: variable 'n' set but not used [-Wunused-but-set-variable] 373 | int i, n; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:692: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp: In function 'void rendezvous_rank_get(int*, int, int*&, int*&, int*&, int*&, int*&, int*&, int (*)(int))': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp:68:7: warning: unused variable 'rank' [-Wunused-variable] 68 | int rank = nrnmpi_myid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp: In function 'void have_to_want(int*, int, int*, int, int*&, int*&, int*&, int*&, int*&, int*&, int (*)(int))': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp:105:7: warning: unused variable 'rank' [-Wunused-variable] 105 | int rank = nrnmpi_myid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:329:13: warning: 'void check_pointers()' defined but not used [-Wunused-function] 329 | static void check_pointers() { | ^~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/rotate3d.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/savstate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/savstate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'virtual void SaveState::read(OcFile*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:735:33: note: in expansion of macro 'ASSERTfread' 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:739:33: note: in expansion of macro 'ASSERTfread' 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:747:33: note: in expansion of macro 'ASSERTfread' 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:751:33: note: in expansion of macro 'ASSERTfread' 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:767:17: note: in expansion of macro 'ASSERTfread' 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'virtual void SaveState::write(OcFile*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:800:33: note: in expansion of macro 'ASSERTfwrite' 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:803:33: note: in expansion of macro 'ASSERTfwrite' 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:810:33: note: in expansion of macro 'ASSERTfwrite' 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:813:33: note: in expansion of macro 'ASSERTfwrite' 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:821:17: note: in expansion of macro 'ASSERTfwrite' 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::readnet(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:939:25: note: in expansion of macro 'ASSERTfread' 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:947:17: note: in expansion of macro 'ASSERTfread' 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:965:17: note: in expansion of macro 'ASSERTfread' 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::writenet(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1010:25: note: in expansion of macro 'ASSERTfwrite' 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1011 | } | ~ 1012 | } | ~ 1013 | fprintf(f, "%d\n", npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1014 | if (npss_) { | ~~~~~~~~~~~~ 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1015:17: note: in expansion of macro 'ASSERTfwrite' 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1011 | } | ~ 1012 | } | ~ 1013 | fprintf(f, "%d\n", npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1014 | if (npss_) { | ~~~~~~~~~~~~ 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1016 | } | ~ 1017 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 1018 | fprintf(f, "%d\n", n); | ~~~~~~~~~~~~~~~~~~~~~~ 1019 | if (n) { | ~~~~~~~~ 1020 | ASSERTfwrite((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1020:17: note: in expansion of macro 'ASSERTfwrite' 1020 | ASSERTfwrite((char*)tqs_->tdeliver, sizeof(double), n, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::allocnet()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1079:16: warning: unused variable 'n' [-Wunused-variable] 1079 | int i, n; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/secbrows.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:8, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:18: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'OcSectionBrowser::OcSectionBrowser(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:131:32: warning: unused variable 'sec' [-Wunused-variable] 131 | ForAllSections(sec) //{ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:314:48: note: in definition of macro 'ForAllSections' 314 | ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'SectionBrowserImpl::SectionBrowserImpl()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:365:24: warning: unused variable 'sec' [-Wunused-variable] 365 | ForAllSections(sec) //{ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:314:48: note: in definition of macro 'ForAllSections' 314 | ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'SectionBrowser::SectionBrowser()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:392:20: warning: unused variable 'lk' [-Wunused-variable] 392 | LayoutKit& lk = *LayoutKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:393:20: warning: unused variable 'wk' [-Wunused-variable] 393 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In static member function 'static void SectionBrowser::make_section_browser()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:440:20: warning: unused variable 'wk' [-Wunused-variable] 440 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In static member function 'static void PointProcessBrowser::make_point_process_browser(OcList*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:500:20: warning: unused variable 'wk' [-Wunused-variable] 500 | WidgetKit& wk = *WidgetKit::instance(); | ^~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp: In member function 'ivGlyph* ColorValue::make_glyph()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp:1108:20: warning: unused variable 'wk' [-Wunused-variable] 1108 | WidgetKit& wk = *WidgetKit::instance(); | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:13, from /builddir/build/BUILD/nrn-7.8.1/src/oc/classreg.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp: In member function 'Hinton::request(ivRequisition&) const': /builddir/build/BUILD/nrn-7.8.1/src/oc/hocassrt.h:19:22: warning: 'nonnull' argument 'this' compared to NULL [-Wnonnull-compare] 19 | # define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/shape.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/shape.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void OcShape::select_section(Section*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:743:18: warning: unused variable 's' [-Wunused-variable] 743 | Section* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:744:22: warning: unused variable 'c' [-Wunused-variable] 744 | const Color* c; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::observe(SectionList*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:832:23: warning: unused variable 'cnt' [-Wunused-variable] 832 | GlyphIndex i, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::transform3d(Rubberband*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1000:15: warning: unused variable 'x' [-Wunused-variable] 1000 | Coord x, y; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1000:18: warning: unused variable 'y' [-Wunused-variable] 1000 | Coord x, y; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::wholeplot(ivCoord&, ivCoord&, ivCoord&, ivCoord&) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1025:17: warning: unused variable 'j' [-Wunused-variable] 1025 | long i, j, n = sg_->count(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In destructor 'virtual ShapeSection::~ShapeSection()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1294:13: warning: unused variable 'n' [-Wunused-variable] 1294 | int n = sec_->npt3d -1; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::set_range_variable(Symbol*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1514:14: warning: variable 'any' set but not used [-Wunused-but-set-variable] 1514 | bool any = false; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::draw(ivCanvas*, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1554:15: warning: unused variable 'e' [-Wunused-variable] 1554 | float e = 1e-2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::fast_draw(ivCanvas*, ivCoord, ivCoord, bool) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1612:16: warning: variable 'a3dold' set but not used [-Wunused-but-set-variable] 1612 | double a3dold; // the arc length at i3d-1 | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'void ShapeSection::fastidious_draw(ivCanvas*, const ivColor*, int, float, float) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1698:15: warning: unused variable 'len' [-Wunused-variable] 1698 | float len, f1, f2, d, x1, x2, y1, y2, a, aa; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'ShapeSection::fast_draw(ivCanvas*, float, float, bool) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1631:54: warning: 'cv' may be used uninitialized in this function [-Wmaybe-uninitialized] 1631 | color = cv->get_color(*pvar_[iseg]); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'ShapeSection::arc_position(float, float) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:2003:51: warning: 'ic' may be used uninitialized in this function [-Wmaybe-uninitialized] 2003 | len = MyMath::norm2(x_[ic] - x_[ic+1], y_[ic] - y_[ic+1]); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/singlech.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/singlech.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/splitcell.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp: In function 'void splitcell_compute()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp:109:13: warning: unused variable 'i' [-Wunused-variable] 109 | int i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp: In member function 'RangeVarPlot::fill_pointers()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp:531:24: warning: 'sym' may be used uninitialized in this function [-Wmaybe-uninitialized] 531 | does_exist = nrn_exists(sym, node_exact(sec, hoc_ac_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 36%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/symdir.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/symdir.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/symdir.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/symdir.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp: In constructor 'SymDirectory::SymDirectory(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp:172:13: warning: unused variable 'suffix' [-Wunused-variable] 172 | int suffix = '.'; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp: In member function 'void SymDirectoryImpl::load_section()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp:549:13: warning: unused variable 'n' [-Wunused-variable] 549 | int n = sec->nnode; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 36%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/tqueue.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp:391, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:133, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c: In function 'TQItem* sptq_spenq(TQItem*, SPTREE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c:104:18: warning: unused variable 'Sct' [-Wunused-variable] 104 | register int Sct; /* Strcmp value */ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c: In function 'TQItem* sptq_spenqprior(TQItem*, SPTREE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c:329:18: warning: unused variable 'Sct' [-Wunused-variable] 329 | register int Sct; /* Strcmp value */ | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:133, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp:56:13: warning: 'void chk(TQItem*, int)' defined but not used [-Wunused-function] 56 | static void chk(TQItem* b, int level) { | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 36%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/vrecord.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/vrecord.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/capac.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c: In function 'activclamp_lhs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c:180:16: warning: unused variable 'v' [-Wunused-variable] 180 | double v; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'nrn_rootnode_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:1654:18: warning: unused variable 'nde' [-Wunused-variable] 1654 | Extnode* nde; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'ismembrane': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:2254:15: warning: unused variable 'p' [-Wunused-variable] 2254 | Prop *p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'section_exists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:2466:21: warning: unused variable 'cp' [-Wunused-variable] 2466 | char *str, *cp, buf[100]; | ^~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:25:28: warning: missing braces around initializer [-Wmissing-braces] 25 | static DoubScal scdoub[] = { /* just a template*/ | ^ 26 | "ci0_na_ion", 0, | { } 27 | "co0_na_ion", 0, | { } 28 | 0, 0 | { 29 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'ion_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:521:16: warning: unused variable 'vnode' [-Wunused-variable] 521 | Node** vnode = ml->nodelist; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'ion_init': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:543:16: warning: unused variable 'vnode' [-Wunused-variable] 543 | Node** vnode = ml->nodelist; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'second_order_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:605:13: warning: unused variable 'j' [-Wunused-variable] 605 | int j, i, i2; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:26:33: warning: missing braces around initializer [-Wmissing-braces] 26 | static HocParmLimits limits[] = { | ^ 27 | "xraxial", 1e-9, 1e15, | { { }} 28 | "xg", 0., 1e15, | { { }} 29 | "xc", 0., 1e15, | { { }} 30 | 0,0.,0. | { { 31 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:33:31: warning: missing braces around initializer [-Wmissing-braces] 33 | static HocParmUnits units[] = { | ^ 34 | "xraxial", "MOhm/cm", | { } 35 | "xg", "S/cm2", | { } 36 | "xc", "uF/cm2", | { } 37 | "e_extracellular", "mV", | { } 38 | "vext", "mV", | { } 39 | "i_membrane", "mA/cm2", | { } 40 | 0,0 | { 41 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'nrn_update_2d': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:94:16: warning: variable 'cfac' set but not used [-Wunused-but-set-variable] 94 | double cfac; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:90:20: warning: unused variable 'secondorder' [-Wunused-variable] 90 | extern int secondorder; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'extcell_node_create': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:197:13: warning: unused variable 'i' [-Wunused-variable] 197 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'extcell_2d_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:240:15: warning: unused variable 'p' [-Wunused-variable] 240 | Prop* p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:239:18: warning: unused variable 'nde' [-Wunused-variable] 239 | Extnode *nde; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:238:15: warning: unused variable 'nd' [-Wunused-variable] 238 | Node *nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:237:16: warning: unused variable 'j' [-Wunused-variable] 237 | int i, j; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_pop_defer': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:237:17: warning: unused variable 'obj' [-Wunused-variable] 237 | Object* obj; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'frameobj_clean': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:273:16: warning: unused variable 'narg' [-Wunused-variable] 273 | int i, narg; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_Argtype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1509:13: warning: unused variable 'narg' [-Wunused-variable] 1509 | int narg, iarg, type, itype=0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_autoobject': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1760:18: warning: unused variable 'obp' [-Wunused-variable] 1760 | Object **obp; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1758:13: warning: unused variable 'i' [-Wunused-variable] 1758 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_delete_symbol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:2507:14: warning: unused variable 'sp' [-Wunused-variable] 2507 | * sp; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_daspk_init_step': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:284:13: warning: unused variable 'i' [-Wunused-variable] 284 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_fixed_step': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:301:13: warning: unused variable 'i' [-Wunused-variable] 301 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'fcurrent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:607:13: warning: unused variable 'i' [-Wunused-variable] 607 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_ba': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:1015:21: warning: unused variable 'type' [-Wunused-variable] 1015 | int type = tbl->bam->type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_finitialize': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:783:9: warning: '_nt' is used uninitialized [-Wuninitialized] 783 | nrn_random_play(_nt); | ^~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fstim.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocusr.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hocusr.c:9, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocusr.c:6: /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:32:30: warning: missing braces around initializer [-Wmissing-braces] 32 | static VoidFunc function[] = { | ^ 33 | 34 | "node_data", node_data, | { } 35 | "disconnect", disconnect, | { } 36 | "batch_run", batch_run, | { } 37 | "batch_save", batch_save, | { } 38 | "pt3dclear", pt3dclear, | { } 39 | "pt3dadd", pt3dadd, | { } 40 | "n3d", n3d, | { } 41 | "x3d", x3d, | { } 42 | "y3d", y3d, | { } 43 | "z3d", z3d, | { } 44 | "arc3d", arc3d, | { } 45 | "diam3d", diam3d, | { } 46 | "pt3dinsert", pt3dinsert, | { } 47 | "pt3dremove", pt3dremove, | { } 48 | "pt3dchange", pt3dchange, | { } 49 | "define_shape", define_shape, | { } 50 | "pt3dconst", pt3dconst, | { } 51 | "pt3dstyle", pt3dstyle, | { } 52 | "spine3d", spine3d, | { } 53 | "setSpineArea", setSpineArea, | { } 54 | "getSpineArea", getSpineArea, | { } 55 | "area", area, | { } 56 | "ri", ri, | { } 57 | "initnrn", initnrn, | { } 58 | "topology", nrnhoc_topology, | { } 59 | "fadvance", fadvance, | { } 60 | "distance", distance, | { } 61 | "finitialize", finitialize, | { } 62 | "fstim", fstim, | { } 63 | "fstimi", fstimi, | { } 64 | "ion_style", ion_style, | { } 65 | "ion_register", ion_register, | { } 66 | "ion_charge", ion_charge, | { } 67 | "nernst", nernst, | { } 68 | "ghk", ghk, | { } 69 | "section_owner", section_owner, | { } 70 | "make_mechanism", make_mechanism, | { } 71 | "make_pointprocess", make_pointprocess, | { } 72 | "nrnpython", nrnpython, | { } 73 | "fsyn", fsyn, | { } 74 | "fsyng", fsyng, | { } 75 | "fsyni", fsyni, | { } 76 | "fclamp", fclamp, | { } 77 | "fclampi", fclampi, | { } 78 | "fclampv", fclampv, | { } 79 | "prstim", prstim, | { } 80 | "fcurrent", fcurrent, | { } 81 | "fmatrix", fmatrix, | { } 82 | "frecord_init", frecord_init, | { } 83 | "issection", issection, | { } 84 | "ismembrane", ismembrane, | { } 85 | "sectionname", sectionname, | { } 86 | "psection", psection, | { } 87 | "pop_section", pop_section, | { } 88 | "push_section", push_section, | { } 89 | "section_exists", section_exists, | { } 90 | "delete_section", delete_section, | { } 91 | "fit_praxis", fit_praxis, | { } 92 | "attr_praxis", attr_praxis, | { } 93 | "pval_praxis", pval_praxis, | { } 94 | "stop_praxis", stop_praxis, | { } 95 | "keep_nseg_parm", keep_nseg_parm, | { } 96 | "nrnallsectionmenu", nrnallsectionmenu, | { } 97 | "nrnallpointmenu", nrnallpointmenu, | { } 98 | "nrnsecmenu", nrnsecmenu, | { } 99 | "nrnglobalmechmenu", nrnglobalmechmenu, | { } 100 | "nrnmechmenu", nrnmechmenu, | { } 101 | "nrnpointmenu", nrnpointmenu, | { } 102 | "this_section", this_section, | { } 103 | "this_node", this_node, | { } 104 | "parent_section", parent_section, | { } 105 | "parent_node", parent_node, | { } 106 | "parent_connection", parent_connection, | { } 107 | "section_orientation", section_orientation, | { } 108 | 0, 0 | { 109 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:114:13: warning: missing braces around initializer [-Wmissing-braces] 114 | } scint[] = { | ^ 115 | 116 | "secondorder", &secondorder, | { } 117 | "diam_changed", &diam_changed, | { } 118 | "nrn_shape_changed_", &nrn_shape_changed_, | { } 119 | "nrn_netrec_state_adjust", &nrn_netrec_state_adjust, | { } 120 | "nrn_sparse_partrans", &nrn_sparse_partrans, | { } 121 | "stoprun", &stoprun, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:129:12: warning: missing braces around initializer [-Wmissing-braces] 129 | } vint[] = { | ^ 130 | 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:137:15: warning: missing braces around initializer [-Wmissing-braces] 137 | } scfloat[] = { | ^ 138 | 139 | 0, 0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:146:14: warning: missing braces around initializer [-Wmissing-braces] 146 | } vfloat[] = { | ^ 147 | 148 | 0,0,0 | { 149 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:152:21: warning: missing braces around initializer [-Wmissing-braces] 152 | DoubScal scdoub[] = { | ^ 153 | 154 | "clamp_resist", &clamp_resist, | { } 155 | "celsius", &celsius, | { } 156 | 0,0 | { 157 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:160:19: warning: missing braces around initializer [-Wmissing-braces] 160 | DoubVec vdoub[] = { | ^ 161 | 162 | 0, 0, 0 | { 163 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:170:14: warning: missing braces around initializer [-Wmissing-braces] 170 | } ardoub[] = { | ^ 171 | 172 | 0, 0, 0, 0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:181:15: warning: missing braces around initializer [-Wmissing-braces] 181 | } thredim[] = { | ^ 182 | 183 | 0, 0, 0, 0, 0 | { 184 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c: In function 'fit_praxis': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c:101:32: warning: variable 'nvarsav' set but not used [-Wunused-but-set-variable] 101 | long int printmodesav, nvarsav; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c: In function 'efun': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c:279:13: warning: unused variable 'i' [-Wunused-variable] 279 | int i; | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_init.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_init.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:34:16: warning: missing braces around initializer [-Wmissing-braces] 34 | } keywords[] = { | ^ 35 | "proc", parsePROC, | { } 36 | "func", FUNC, | { } 37 | "obfunc", HOCOBJFUNC, | { } 38 | "return", RETURN, | { } 39 | "break", BREAK, | { } 40 | "continue", CONTINUE, | { } 41 | "stop", STOPSTMT, | { } 42 | "if", IF, | { } 43 | "else", ELSE, | { } 44 | "while", WHILE, | { } 45 | "for", FOR, | { } 46 | "print", PRINT, | { } 47 | "delete", parseDELETE, | { } 48 | "read", READ, | { } 49 | "debug", DEBUG, | { } 50 | "double", parseDOUBLE, | { } 51 | "em", EDIT, | { } 52 | "depvar", DEPENDENT, | { } 53 | "eqn", EQUATION, | { } 54 | "local", LOCAL, | { } 55 | "localobj", LOCALOBJ, | { } 56 | "strdef", STRDEF, | { } 57 | "parallel", PARALLEL, | { } 58 | "help", HELP, | { } 59 | "iterator", ITERKEYWORD, | { } 60 | "iterator_statement", ITERSTMT, | { } 61 | #if CABLE 62 | "create", SECTIONKEYWORD, | { } 63 | "connect", CONNECTKEYWORD, | { } 64 | "setpointer", SETPOINTERKEYWORD, | { } 65 | "access", ACCESSKEYWORD, | { } 66 | "insert", INSERTKEYWORD, | { } 67 | "uninsert", UNINSERTKEYWORD, | { } 68 | "forall", FORALL, | { } 69 | "ifsec", IFSEC, | { } 70 | "forsec", FORSEC, | { } ...... 73 | "begintemplate", BEGINTEMPLATE, | { } 74 | "endtemplate", ENDTEMPLATE, | { } 75 | "objectvar", OBJVARDECL, | { } 76 | "objref", OBJVARDECL, | { } 77 | "public", PUBLICDECL, | { } 78 | "external", EXTERNALDECL, | { } 79 | "new", NEW, | { } 80 | #endif 81 | 0, 0 | { 82 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:86:14: warning: missing braces around initializer [-Wmissing-braces] 86 | } consts[] = { | ^ 87 | "PI", 3.14159265358979323846, | { } 88 | "E", 2.71828182845904523536, | { } 89 | "GAMMA",0.57721566490153286060, /* Euler */ | { } 90 | "DEG", 57.29577951308232087680, /* deg/radian */ | { } 91 | "PHI", 1.61803398874989484820, /* golden ratio */ | { } 92 | #if defined(LegacyFR) && LegacyFR == 1 93 | "FARADAY", 96485.309, /*coulombs/mole*/ | { } 94 | "R", 8.31441, /*molar gas constant, joules/mole/deg-K*/ | { } ...... 101 | 0, 0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:107:16: warning: missing braces around initializer [-Wmissing-braces] 107 | } builtins[] = { | ^ 108 | "sin", sin, | { } 109 | "cos", cos, | { } 110 | "atan", atan, | { } 111 | "tanh", tanh, | { } 112 | "log", Log, /* checks argument */ | { } 113 | "log10",Log10, /* checks argument */ | { } 114 | "exp", hoc1_Exp, /* checks argument */ | { } 115 | "sqrt", Sqrt, /* checks argument */ | { } 116 | "int", integer, | { } ...... 122 | "abs", fabs, | { } 123 | "erf", erf, | { } 124 | "erfc", erfc, | { } 125 | #endif 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:131:17: warning: missing braces around initializer [-Wmissing-braces] 131 | } fun_bltin[] = { | ^ 132 | "atan2", hoc_atan2, | { } 133 | "system", hoc_System, | { } 134 | "prmat", hoc_Prmat, | { } 135 | "solve", hoc_solve, | { } 136 | "eqinit", hoc_eqinit, | { } 137 | "plt", hoc_Plt, | { } 138 | "axis", hoc_axis, | { } 139 | "plot", hoc_Plot, | { } 140 | "plotx", hoc_plotx, | { } 141 | "ploty", hoc_ploty, | { } 142 | "regraph", hoc_regraph, | { } 143 | "symbols", hoc_symbols, | { } 144 | "printf", hoc_PRintf, | { } 145 | "xred", hoc_Xred, | { } 146 | "sred", hoc_Sred, | { } 147 | "ropen", hoc_ropen, | { } 148 | "wopen", hoc_wopen, | { } 149 | "xopen", hoc_xopen, | { } 150 | "hoc_stdout", hoc_stdout, | { } 151 | "chdir", hoc_Chdir, | { } 152 | "fprint", hoc_Fprint, | { } 153 | "fscan", hoc_Fscan, | { } 154 | "sscanf", hoc_sscanf, | { } 155 | "sprint", hoc_Sprint, | { } 156 | "graph", hoc_Graph, | { } 157 | "graphmode", hoc_Graphmode, | { } 158 | "fmenu", hoc_fmenu, | { } 159 | "lw", hoc_Lw, | { } 160 | "getstr", hoc_Getstr, | { } 161 | "strcmp", hoc_Strcmp, | { } 162 | "setcolor", hoc_Setcolor, | { } 163 | "startsw", hoc_startsw, | { } 164 | "stopsw", hoc_stopsw, | { } 165 | "object_id", hoc_object_id, | { } 166 | "allobjectvars", hoc_allobjectvars, | { } 167 | "allobjects", hoc_allobjects, | { } 168 | "xpanel", hoc_xpanel, | { } 169 | "xbutton", hoc_xbutton, | { } 170 | "xcheckbox", hoc_xcheckbox, | { } 171 | "xstatebutton", hoc_xstatebutton, | { } 172 | "xlabel", hoc_xlabel, | { } 173 | "xmenu", hoc_xmenu, | { } 174 | "xvalue", hoc_xvalue, | { } 175 | "xpvalue", hoc_xpvalue, | { } 176 | "xradiobutton", hoc_xradiobutton, | { } 177 | "xfixedvalue", hoc_xfixedvalue, | { } 178 | "xvarlabel", hoc_xvarlabel, | { } 179 | "xslider", hoc_xslider, | { } 180 | "boolean_dialog", hoc_boolean_dialog, | { } 181 | "continue_dialog", hoc_continue_dialog, | { } 182 | "string_dialog", hoc_string_dialog, | { } 183 | "doEvents", hoc_single_event_run, | { } 184 | "doNotify", hoc_notify_iv, | { } 185 | "nrniv_bind_thread", nrniv_bind_thread, | { } 186 | "ivoc_style", ivoc_style, | { } 187 | "numarg", hoc_Numarg, | { } 188 | "argtype", hoc_Argtype, | { } 189 | "hoc_pointer_", hoc_pointer, /* for internal use */ | { } 190 | "nrn_mallinfo", hoc_mallinfo, | { } 191 | "execute", hoc_exec_cmd, | { } 192 | "execute1", hoc_execute1, | { } 193 | "load_proc", hoc_load_proc, | { } 194 | "load_func", hoc_load_func, | { } 195 | "load_template", hoc_load_template, | { } 196 | "load_file", hoc_load_file, | { } 197 | "load_java", hoc_load_java, | { } 198 | "unix_mac_pc", hoc_unix_mac_pc, | { } 199 | "show_winio", hoc_show_winio, | { } 200 | "nrn_load_dll", hoc_nrn_load_dll, | { } 201 | "machine_name", hoc_machine_name, | { } 202 | "saveaudit", hoc_Saveaudit, | { } 203 | "retrieveaudit", hoc_Retrieveaudit, | { } 204 | "coredump_on_error", hoc_coredump_on_error, | { } 205 | "checkpoint", hoc_checkpoint, | { } 206 | "quit", hoc_quit, | { } 207 | "object_push", hoc_object_push, | { } 208 | "object_pop", hoc_object_pop, | { } 209 | "pwman_place", hoc_pwman_place, | { } 210 | "save_session", hoc_save_session, | { } 211 | "print_session", hoc_print_session, | { } 212 | "show_errmess_always", hoc_show_errmess_always, | { } 213 | "execerror", hoc_Execerror, | { } 214 | "variable_domain", hoc_Symbol_limits, | { } 215 | "name_declared", hoc_name_declared, | { } 216 | "use_mcell_ran4", hoc_usemcran4, | { } 217 | "mcell_ran4", hoc_mcran4, | { } 218 | "mcell_ran4_init", hoc_mcran4init, | { } 219 | "nrn_feenableexcept", nrn_feenableexcept, | { } 220 | "nrnmpi_init", hoc_nrnmpi_init, | { } ...... 232 | 0, 0 | { 233 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:238:20: warning: missing braces around initializer [-Wmissing-braces] 238 | } strfun_bltin[] = { | ^ 239 | "secname", hoc_secname, | { } 240 | "units", hoc_Symbol_units, | { } 241 | "neuronhome", hoc_neuronhome, | { } 242 | "getcwd", hoc_getcwd, | { } 243 | "nrnversion", hoc_nrnversion, | { } 244 | 0, 0 | { 245 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:250:20: warning: missing braces around initializer [-Wmissing-braces] 250 | } objfun_bltin[] = { | ^ 251 | "object_pushed", hoc_object_pushed, | { } 252 | 0, 0 | { 253 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c: In function 'hoc_show_winio': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:355:9: warning: variable 'b' set but not used [-Wunused-but-set-variable] 355 | int b; | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:22: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabvars.h:8:15: warning: missing braces around initializer [-Wmissing-braces] 8 | } usrprop[] = { | ^ 9 | "nseg", 0, 0, | { } 10 | "L", 1, 2, | { } 11 | "rallbranch", 1, 4, | { } 12 | "Ra", 1, 7, | { } 13 | 0, 0, 0 | { 14 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:109:43: warning: missing braces around initializer [-Wmissing-braces] 109 | static HocParmLimits _hoc_parm_limits[] = { | ^ 110 | "Ra", 1e-6, 1e9, | { { }} 111 | "L", 1e-4, 1e20, | { { }} 112 | "diam", 1e-9, 1e9, | { { }} 113 | "cm", 0., 1e9, | { { }} 114 | "rallbranch", 1., 1e9, | { { }} 115 | "nseg", 1., 1e9, | { { }} 116 | "celsius", -273., 1e6, | { { }} 117 | "dt", 1e-9, 1e15, | { { }} 118 | 0, 0., 0. | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:121:41: warning: missing braces around initializer [-Wmissing-braces] 121 | static HocParmUnits _hoc_parm_units[] = { | ^ 122 | "Ra", "ohm-cm", | { } 123 | "L", "um", | { } 124 | "diam", "um", | { } 125 | "cm", "uF/cm2", | { } 126 | "celsius", "degC", | { } 127 | "dt", "ms", | { } 128 | "t", "ms", | { } 129 | "v", "mV", | { } 130 | "i_cap", "mA/cm2", | { } 131 | 0, 0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:287:28: warning: missing braces around initializer [-Wmissing-braces] 287 | static DoubScal scdoub[] = { | ^ 288 | "t", &t, | { } 289 | "dt", &dt, | { } 290 | 0,0 | { 291 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_newobj': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:612:25: warning: unused variable 'o' [-Wunused-variable] 612 | Object* o = hoc_obj_look_inside_stack(narg); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:594:16: warning: unused variable 'total' [-Wunused-variable] 594 | int i, total; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:594:13: warning: unused variable 'i' [-Wunused-variable] 594 | int i, total; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:593:23: warning: unused variable 's' [-Wunused-variable] 593 | Symbol *sym, *s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:592:21: warning: unused variable 'obd' [-Wunused-variable] 592 | Objectdata *obd; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_cmp_otype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:804:13: warning: variable 'type' set but not used [-Wunused-but-set-variable] 804 | int type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_known_type': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:809:13: warning: variable 'type' set but not used [-Wunused-but-set-variable] 809 | int type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_name2obj': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:881:14: warning: unused variable 'buf' [-Wunused-variable] 881 | char buf[200]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_ob_pointer': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1275:17: warning: unused variable 'sym' [-Wunused-variable] 1275 | Symbol* sym; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'java2nrn_class': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1563:48: warning: unused variable 'buf' [-Wunused-variable] 1563 | char mname[256], signature[256], *cn, *buf; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1676:56: warning: '%s' directive writing up to 255 bytes into a region of size between 253 and 255 [-Wformat-overflow=] 1676 | sprintf(mname + strlen(mname), "%ld%s", | ^~~~~~~ 1677 | strlen(signature), signature); | ~~~~~~~~~ In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/oc/classreg.h:3, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:3, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c:6: /usr/include/bits/stdio2.h:38:10: note: '__sprintf_chk' output between 2 and 259 bytes into a destination of size 256 38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/method3.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnnemo.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'longdifus_diamchange': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:46: warning: variable 'vnodecount' set but not used [-Wunused-but-set-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:31: warning: unused variable 'index' [-Wunused-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:28: warning: unused variable 'j' [-Wunused-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'longdifusalloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:192:19: warning: unused variable 'qsec' [-Wunused-variable] 192 | hoc_Item* qsec; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:191:15: warning: unused variable 'nd' [-Wunused-variable] 191 | Node* nd, *pnd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:31: warning: unused variable 'index' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:23: warning: unused variable 'mpi' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:19: warning: unused variable 'mi' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'stagger': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:369:21: warning: unused variable 'mi' [-Wunused-variable] 369 | int mi = pld->mindex[i]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:329:31: warning: unused variable 'dx' [-Wunused-variable] 329 | double dc, vol, dfdi, dx; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:329:20: warning: unused variable 'vol' [-Wunused-variable] 329 | double dc, vol, dfdi, dx; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:328:19: warning: variable 'di' set but not used [-Wunused-but-set-variable] 328 | int i, n, di; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'ode': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:401:20: warning: unused variable 'vol' [-Wunused-variable] 401 | double dc, vol, dfdi; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:459:20: warning: unused variable 'vol' [-Wunused-variable] 459 | double dc, vol, dfdi; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrntimeout.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c: In function 'nrn_version': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:54:12: warning: unused variable 'size' [-Wunused-variable] 54 | int j, size; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:29:7: warning: unused variable 'b' [-Wunused-variable] 29 | int b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:28:9: warning: unused variable 'cp' [-Wunused-variable] 28 | char *cp; | ^~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c: In function 'pas_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c:31:17: warning: unused variable 'vpdata' [-Wunused-variable] 31 | Datum **vpdata = ml->pdata; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c: In function 'pas_jacob': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c:45:17: warning: unused variable 'vpdata' [-Wunused-variable] 45 | Datum **vpdata = ml->pdata; | ^~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/point.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/psection.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c: In function 'wholetree': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:31: warning: unused variable 'last' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:23: warning: unused variable 'first' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:19: warning: unused variable 'j' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:15: warning: unused variable 'i' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:123:28: warning: unused variable 'ch' [-Wunused-variable] 123 | Section* s, *sec, *ch; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:254:32: warning: missing braces around initializer [-Wmissing-braces] 254 | static Member_func members[] = { | ^ 255 | "append", append, | { } 256 | "remove", seclist_remove, | { } 257 | "wholetree", wholetree, | { } 258 | "subtree", subtree, | { } 259 | "children", children, | { } 260 | "unique", unique, | { } 261 | "printnames", printnames, | { } 262 | "contains", contains, | { } 263 | "allroots", allroots, | { } 264 | 0,0 | { 265 | }; | } make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_rename': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:81:24: warning: unused variable 'hoc_thisobject' [-Wunused-variable] 81 | extern Object* hoc_thisobject, **hoc_objgetarg(); | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_nchild': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:230:13: warning: unused variable 'n' [-Wunused-variable] 230 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_has_parent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:236:13: warning: unused variable 'n' [-Wunused-variable] 236 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_has_trueparent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:246:13: warning: unused variable 'n' [-Wunused-variable] 246 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_exists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:256:13: warning: unused variable 'n' [-Wunused-variable] 256 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:275:32: warning: missing braces around initializer [-Wmissing-braces] 275 | static Member_func members[] = { | ^ 276 | "sec", s_rename, /* will actually become a SECTIONREF below */ | { } 277 | "parent", s_rename, | { } 278 | "trueparent", s_rename, | { } 279 | "root", s_rename, | { } 280 | "child", s_rename, | { } 281 | "nchild", s_nchild, | { } 282 | "has_parent", s_has_parent, | { } 283 | "has_trueparent", s_has_trueparent, | { } 284 | "exists", s_exists, | { } 285 | "rename", s_rename, | { } 286 | "unname", s_unname, | { } 287 | "is_cas", s_cas, | { } 288 | 0, 0 | { 289 | }; | } make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/synapse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'node_destruct': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:648:15: warning: unused variable 'nd' [-Wunused-variable] 648 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'node_realloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:724:29: warning: unused variable 'i' [-Wunused-variable] 724 | int n1, n2, i1, i2, i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:710:14: warning: 'node_interp' defined but not used [-Wunused-function] 710 | static Node* node_interp(Node* nd1, Node* nd2, double frac) | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'distance': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:271:21: warning: 'my_origin_node' may be used uninitialized in this function [-Wmaybe-uninitialized] 271 | d = topol_distance(my_origin_sec, my_origin_node, sec, node, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | &sec, &node ); | ~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/isaac64.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c: In function 'nrnRan4dbl': /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c:163:23: warning: unused variable 'extra' [-Wunused-variable] 163 | uint32_t hi, lo, extra; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c:163:19: warning: unused variable 'lo' [-Wunused-variable] 163 | uint32_t hi, lo, extra; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnisaac.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_lhs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:481:24: warning: variable 'neqn' set but not used [-Wunused-but-set-variable] 481 | int i, neqn; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:481:21: warning: unused variable 'i' [-Wunused-variable] 481 | int i, neqn; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'connection_coef': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:816:15: warning: unused variable 'p' [-Wunused-variable] 816 | Prop *p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:32: warning: unused variable 'ra' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:20: warning: unused variable 'diam' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:16: warning: unused variable 'dx' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'pt3dinsert': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1118:13: warning: unused variable 'i' [-Wunused-variable] 1118 | int i, n, i0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'pt3dremove': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1169:13: warning: unused variable 'i' [-Wunused-variable] 1169 | int i, i0, n; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'setaffinity': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:288:13: warning: unused variable 'mask' [-Wunused-variable] 288 | int mask; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'reorder_secorder': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:879:26: warning: unused variable 'i' [-Wunused-variable] 879 | int order, isec, i, j, inode; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'nrn_how_many_processors': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:1288:13: warning: unused variable 'i' [-Wunused-variable] 1288 | int i, ip; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'v_setup_vectors': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1605:15: warning: unused variable 'nd' [-Wunused-variable] 1605 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1604:18: warning: unused variable 'sec' [-Wunused-variable] 1604 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1603:13: warning: unused variable 'isec' [-Wunused-variable] 1603 | int isec; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_modeltype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1914:26: warning: unused variable 'lm' [-Wunused-variable] 1914 | static Template* lm = (Template*)0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_matrix_node_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1979:15: warning: unused variable 'nd' [-Wunused-variable] 1979 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1978:16: warning: unused variable 'b' [-Wunused-variable] 1978 | int i, b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_recalc_node_ptrs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:2204:24: warning: unused variable 'd' [-Wunused-variable] 2204 | Datum* d; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1914:26: warning: 'lm' defined but not used [-Wunused-variable] 1914 | static Template* lm = (Template*)0; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:268:13: warning: 'wait_for_workers_timeit' defined but not used [-Wunused-function] 268 | static void wait_for_workers_timeit() { | ^~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c: In function 'nrnran123_ipick': /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c:75:28: warning: array subscript has type 'char' [-Wchar-subscripts] 75 | rval = s->r.v[which++]; | ~~~~~^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:2: In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '*fgets' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^~~ In file included from /usr/include/features.h:473, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdio.h:27, from /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:2: /usr/include/bits/stdio2.h:251:14: note: in a call to function '*fgets' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/bksub.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/axis.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/cygwinprt.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/code2.c /builddir/build/BUILD/nrn-7.8.1/src/oc/code2.c:516:16: warning: missing braces around initializer [-Wmissing-braces] 516 | } type_sym[] = { | ^ 517 | "Builtins", BLTIN, | { } 518 | "Other Builtins", FUN_BLTIN, | { } 519 | "Functions", FUNCTION, | { } 520 | "Procedures", PROCEDURE, | { } 521 | "Undefined", UNDEF, | { } 522 | "Scalars", VAR, | { } 523 | 0, 0 | { 524 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/debug.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/fmenu.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c: In function 'hoc_stdout': /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:78:21: warning: unused variable 'i' [-Wunused-variable] 78 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c: In function 'hoc_Load_file': /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:727:29: warning: unused variable 'i' [-Wunused-variable] 727 | int i; | ^ In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:15, from /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:8: In function 'strncpy', inlined from 'hoc_Load_file' at /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:704:2: /usr/include/bits/string_fortified.h:95:10: warning: 'strncpy' specified bound 1024 equals destination size [-Wstringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ftime.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/functabl.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/getelm.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/getsym.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/hocedit.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/isoc99.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'hoc_oc': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:1414:15: warning: unused variable 'cp' [-Wunused-variable] 1414 | char *cp; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'hoc_get_line': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:1850:44: warning: unused variable 'hoc_notify_stop' [-Wunused-variable] 1850 | extern int hoc_notify_stop; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'matherr1': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:75:1: warning: control reaches end of non-void function [-Wreturn-type] 75 | } | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/lineq.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/math.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c: In function 'hoc_errno_check': /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c:118:13: warning: unused variable 'ierr' [-Wunused-variable] 118 | int ierr; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/list.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnfilewrap.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nonlin.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ocerf.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/parallel.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/oc/parallel.c:26:14: warning: 'parallel_envp' defined but not used [-Wunused-variable] 26 | static char *parallel_envp; | ^~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/plot.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/plt.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/parse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/prmat.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/scoprand.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/oc/scoprand.c:20:13: warning: 'RCSid' defined but not used [-Wunused-variable] 20 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c: In function 'advance': /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:383:41: warning: array subscript has type 'char' [-Wchar-subscripts] 383 | start = int_range_start[*ep]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:384:39: warning: array subscript has type 'char' [-Wchar-subscripts] 384 | stop = int_range_stop[*ep++]; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:415:26: warning: array subscript has type 'char' [-Wchar-subscripts] 415 | braslist[*ep++] = lp; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:419:26: warning: array subscript has type 'char' [-Wchar-subscripts] 419 | braelist[*ep++] = lp; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/settext.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/subrows.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c: In function 'nrn_cacheline_calloc': /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:246:16: warning: unused variable 'n' [-Wunused-variable] 246 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:246:13: warning: unused variable 'i' [-Wunused-variable] 246 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c: In function 'nrn_mallinfo': /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:430:9: warning: 'mallinfo' is deprecated [-Wdeprecated-declarations] 430 | m = mallinfo(); | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:25: /usr/include/malloc.h:118:24: note: declared here 118 | extern struct mallinfo mallinfo (void) __THROW __MALLOC_DEPRECATED; | ^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/x.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/x.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/xred.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/ansi.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/basic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/bind.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/buffer.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/file.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c: In function 'emacs_vtinit': /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c:88:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 88 | if (vscreen == NULL) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c:91:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 91 | if (pscreen) { | ^~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/fileio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/lock.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/line.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/edef.h:43, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:231: In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: 'strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' In file included from /builddir/build/BUILD/nrn-7.8.1/src/memacs/edef.h:42, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c:29: /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c: In function 'emacs_yank': /builddir/build/BUILD/nrn-7.8.1/src/memacs/redef.h:146:15: warning: unused variable 'emacs_kused' [-Wunused-variable] 146 | #define kused emacs_kused | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c:551:30: note: in expansion of macro 'kused' 551 | extern unsigned kused; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/region.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/spawn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/search.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/tcap.c /builddir/build/BUILD/nrn-7.8.1/src/memacs/tcap.c:185:12: warning: 'putnpad' defined but not used [-Wunused-function] 185 | static int putnpad(str, n) | ^~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/termio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/window.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/word.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/arnoldi.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/arnoldi.c:37:13: warning: 'rcsid' defined but not used [-Wunused-variable] 37 | static char rcsid[] = "arnoldi.c,v 1.1 1997/12/04 17:55:13 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'interchange': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:55:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 55 | Real **A_me, tmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'BKPfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:108:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 108 | Real **A_me, aii, aip1, aip1i, lambda, sigma, tmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'BKPsolve': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:235:59: warning: variable 'tmp_ve' set but not used [-Wunused-but-set-variable] 235 | Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:235:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 235 | Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "bkpfacto.c,v 1.1 1997/12/04 17:55:14 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bdfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bdfactor.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "$Id: "; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/chfactor.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/chfactor.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "chfactor.c,v 1.1 1997/12/04 17:55:15 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/conjgrad.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/conjgrad.c:52:17: warning: 'rcsid' defined but not used [-Wunused-variable] 52 | static char rcsid[] = "conjgrad.c,v 1.1 1997/12/04 17:55:16 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c: In function 'vm_move': /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c:193:17: warning: variable 'dim0' set but not used [-Wunused-but-set-variable] 193 | int dim0, i; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c:28:17: warning: 'rcsid' defined but not used [-Wunused-variable] 28 | static char rcsid[] = "copy.c,v 1.1 1997/12/04 17:55:17 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c: In function 'main': /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:38: warning: unused variable 'dtmp' [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:31: warning: unused variable 'deps1' [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:31: warning: 'deps1' defined but not used [-Wunused-variable] /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:38: warning: 'dtmp' defined but not used [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/err.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/err.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "err.c,v 1.1 1997/12/04 17:55:19 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmm': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:439:31: warning: unused variable 'k' [-Wunused-variable] 439 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:439:28: warning: unused variable 'j' [-Wunused-variable] 439 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmtrm': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:458:28: warning: unused variable 'j' [-Wunused-variable] 458 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:458:25: warning: unused variable 'i' [-Wunused-variable] 458 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmmtr': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:476:31: warning: unused variable 'k' [-Wunused-variable] 476 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:476:28: warning: unused variable 'j' [-Wunused-variable] 476 | register int i, j, k; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:87:17: warning: 'rcsid' defined but not used [-Wunused-variable] 87 | static char rcsid[] = "$Id: extras.c,v 1.4 1995/06/08 15:13:15 des Exp $"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/fft.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/fft.c:34:13: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "fft.c,v 1.1 1997/12/04 17:55:20 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/givens.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/givens.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "givens.c,v 1.1 1997/12/04 17:55:22 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hessen.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/hessen.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "hessen.c,v 1.1 1997/12/04 17:55:23 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hsehldr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hsehldr.c:37:17: warning: 'rcsid' defined but not used [-Wunused-variable] 37 | static char rcsid[] = "hsehldr.c,v 1.1 1997/12/04 17:55:24 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/init.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/init.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "init.c,v 1.1 1997/12/04 17:55:25 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c: In function 'iter_copy2': /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c:207:21: warning: operation on 'ip2->shared_x' may be undefined [-Wsequence-point] 207 | ip2->shared_x = ip2->shared_x = FALSE; At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c:44:13: warning: 'rcsid' defined but not used [-Wunused-variable] 44 | static char rcsid[] = "iter0.c,v 1.1 1997/12/04 17:55:26 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/itersym.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/itersym.c:43:13: warning: 'rcsid' defined but not used [-Wunused-variable] 43 | static char rcsid[] = "itersym.c,v 1.1 1997/12/04 17:55:29 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:826:13: warning: 'test_mgcr' defined but not used [-Wunused-function] 826 | static void test_mgcr(ip,i,Q,R) | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:541:13: warning: 'test_gmres' defined but not used [-Wunused-function] 541 | static void test_gmres(ip,i,Q,R,givc,givs,h_val) | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:43:13: warning: 'rcsid' defined but not used [-Wunused-variable] 43 | static char rcsid[] = "iternsym.c,v 1.1 1997/12/04 17:55:27 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c: In function 'iv_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c:117:15: warning: operation on 'iv->ive' may be undefined [-Wsequence-point] 117 | iv->ive = RENEW(iv->ive,new_dim,int); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "ivecop.c,v 1.1 1997/12/04 17:55:30 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lanczos.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lanczos.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "lanczos.c,v 1.1 1997/12/04 17:55:31 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/machine.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/machine.c:35:18: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char *rcsid = "machine.c,v 1.1 1997/12/04 17:55:33 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lufactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lufactor.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "lufactor.c,v 1.1 1997/12/04 17:55:32 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matlab.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matlab.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "matlab.c,v 1.1 1997/12/04 17:55:34 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matop.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/matop.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "matop.c,v 1.1 1997/12/04 17:55:35 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matrixio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matrixio.c:35:13: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "matrixio.c,v 1.1 1997/12/04 17:55:35 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/meminfo.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/meminfo.c:46:13: warning: 'rcsid' defined but not used [-Wunused-variable] 46 | static char rcsid[] = "meminfo.c,v 1.1 1997/12/04 17:55:37 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memstat.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memstat.c:44:13: warning: 'rcsid' defined but not used [-Wunused-variable] 44 | static char rcsid[] = "memstat.c,v 1.1 1997/12/04 17:55:39 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'm_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:287:13: warning: operation on 'A->me' may be undefined [-Wsequence-point] 287 | A->me = RENEW(A->me,new_m,Real *); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:303:15: warning: operation on 'A->base' may be undefined [-Wsequence-point] 303 | A->base = RENEW(A->base,new_size,Real); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'px_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:421:14: warning: operation on 'px->pe' may be undefined [-Wsequence-point] 421 | px->pe = RENEW(px->pe,new_size,u_int); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'v_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:466:13: warning: operation on 'x->ve' may be undefined [-Wsequence-point] 466 | x->ve = RENEW(x->ve,new_dim,Real); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "memory.c,v 1.1 1997/12/04 17:55:38 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/norm.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/norm.c:31:17: warning: 'rcsid' defined but not used [-Wunused-variable] 31 | static char rcsid[] = "norm.c,v 1.1 1997/12/04 17:55:43 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/mfunc.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/mfunc.c:39:17: warning: 'rcsid' defined but not used [-Wunused-variable] 39 | static char rcsid[] = "mfunc.c,v 1.1 1997/12/04 17:55:41 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/otherio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/otherio.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "otherio.c,v 1.1 1997/12/04 17:55:44 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/pxop.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/pxop.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "pxop.c,v 1.1 1997/12/04 17:55:44 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/qrfactor.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/qrfactor.c:42:17: warning: 'rcsid' defined but not used [-Wunused-variable] 42 | static char rcsid[] = "qrfactor.c,v 1.1 1997/12/04 17:55:45 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'hhldr3cols': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:74:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 74 | Real **A_me, ip, prod; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'hhldr3rows': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:123:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 123 | Real **A_me, ip, prod; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'schur': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:159:51: warning: unused variable 't' [-Wunused-variable] 159 | Real beta2, c, discrim, dummy, nu1, s, t, tmp, x, y, z; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "schur.c,v 1.1 1997/12/04 17:55:46 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/solve.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/solve.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "solve.c,v 1.1 1997/12/04 17:55:47 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparseio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparseio.c:36:13: warning: 'rcsid' defined but not used [-Wunused-variable] 36 | static char rcsid[] = "sparseio.c,v 1.1 1997/12/04 17:55:49 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_set_val': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:99:17: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 99 | r->elt = RENEW(r->elt,new_len,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_mv_mlt': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:127:22: warning: variable 'n' set but not used [-Wunused-but-set-variable] 127 | int i, j_idx, m, n, max_idx; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_vm_mlt': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:163:22: warning: variable 'n' set but not used [-Wunused-but-set-variable] 163 | int i, j_idx, m, n, max_idx; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_copy2': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:679:16: warning: operation on 'mesch_out->row' may be undefined [-Wsequence-point] 679 | OUT->row = RENEW(OUT->row,A->m,SPROW); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:756:14: warning: operation on 'A->row' may be undefined [-Wsequence-point] 756 | A->row = RENEW(A->row,(unsigned)m,SPROW); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:783:20: warning: operation on 'A->start_row' may be undefined [-Wsequence-point] 783 | A->start_row = RENEW(A->start_row,(unsigned)n,int); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:784:20: warning: operation on 'A->start_idx' may be undefined [-Wsequence-point] 784 | A->start_idx = RENEW(A->start_idx,(unsigned)n,int); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "sparse.c,v 1.1 1997/12/04 17:55:48 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c: In function 'spICHfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c:386:23: warning: variable 'n' set but not used [-Wunused-but-set-variable] 386 | int k, m, n, nxt_row, nxt_idx, diag_idx; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "spchfctr.c,v 1.1 1997/12/04 17:55:51 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c: In function 'spILUfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c:306:37: warning: variable 'm' set but not used [-Wunused-but-set-variable] 306 | int i, k, idx, idx_piv, m, n, old_idx, old_idx_piv; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c: In function 'spBKPfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:569:17: warning: variable 'row_num' set but not used [-Wunused-but-set-variable] 569 | int row_num; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:567:44: warning: variable 'r' set but not used [-Wunused-but-set-variable] 567 | int i, j, k, l, n, onebyone=0, r; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "spbkp.c,v 1.1 1997/12/04 17:55:50 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spswap.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spswap.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "spswap.c,v 1.1 1997/12/04 17:55:54 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_xpd': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:202:14: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 202 | r->elt = RENEW(r->elt,newlen,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:248:14: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 248 | r->elt = RENEW(r->elt,n,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_set_val': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:692:17: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 692 | r->elt = RENEW(r->elt,new_len,row_elt); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "sprow.c,v 1.1 1997/12/04 17:55:53 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/submat.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/submat.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "submat.c,v 1.1 1997/12/04 17:55:55 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/svd.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/svd.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "svd.c,v 1.1 1997/12/04 17:55:56 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/symmeig.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/symmeig.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "symmeig.c,v 1.1 1997/12/04 17:55:57 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/update.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/update.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "update.c,v 1.1 1997/12/04 17:56:01 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/vecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/vecop.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "vecop.c,v 1.1 1997/12/04 17:56:02 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c: In function 'zvm_move': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c:175:17: warning: variable 'dim0' set but not used [-Wunused-but-set-variable] 175 | int dim0, i; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c:28:17: warning: 'rcsid' defined but not used [-Wunused-variable] 28 | static char rcsid[] = "zcopy.c,v 1.1 1997/12/04 17:56:04 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zfunc.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zfunc.c:35:13: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "zfunc.c,v 1.1 1997/12/04 17:56:05 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zgivens.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zgivens.c:36:17: warning: 'rcsid' defined but not used [-Wunused-variable] 36 | static char rcsid[] = "$Id: "; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhessen.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhessen.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "zhessen.c,v 1.1 1997/12/04 17:56:07 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhsehldr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhsehldr.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "zhsehldr.c,v 1.1 1997/12/04 17:56:08 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zlufctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zlufctr.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "zlufctr.c,v 1.1 1997/12/04 17:56:09 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmachine.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmachine.c:35:18: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char *rcsid = "zmachine.c,v 1.1 1997/12/04 17:56:10 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatlab.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatlab.c:41:13: warning: 'rcsid' defined but not used [-Wunused-variable] 41 | static char rcsid[] = "zmatlab.c,v 1.1 1997/12/04 17:56:11 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatio.c:33:13: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zmatio.c,v 1.1 1997/12/04 17:56:11 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c: In function 'zm_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:250:13: warning: operation on 'A->me' may be undefined [-Wsequence-point] 250 | A->me = RENEW(A->me,new_m,complex *); /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:266:15: warning: operation on 'A->base' may be undefined [-Wsequence-point] 266 | A->base = RENEW(A->base,new_size,complex); /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c: In function 'zv_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:385:13: warning: operation on 'x->ve' may be undefined [-Wsequence-point] 385 | x->ve = RENEW(x->ve,new_dim,complex); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zmemory.c,v 1.1 1997/12/04 17:56:13 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatop.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatop.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "zmatop.c,v 1.1 1997/12/04 17:56:12 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/znorm.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/znorm.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "znorm.c,v 1.1 1997/12/04 17:56:14 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zqrfctr.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/zqrfctr.c:42:17: warning: 'rcsid' defined but not used [-Wunused-variable] 42 | static char rcsid[] = "zqrfctr.c,v 1.1 1997/12/04 17:56:15 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zschur.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/mesch/zschur.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "zschur.c,v 1.1 1997/12/04 17:56:16 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zsolve.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zsolve.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zsolve.c,v 1.1 1997/12/04 17:56:17 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zvecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zvecop.c:31:17: warning: 'rcsid' defined but not used [-Wunused-variable] 31 | static char rcsid[] = "zvecop.c,v 1.1 1997/12/04 17:56:19 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:116:34: warning: missing braces around initializer [-Wmissing-braces] 116 | static VoidFunc hoc_intfunc[] = { | ^ 117 | 0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:119:38: warning: missing braces around initializer [-Wmissing-braces] 119 | static Member_func _member_func[] = { | ^ 120 | "loc", _hoc_loc_pnt, | { } 121 | "has_loc", _hoc_has_loc, | { } 122 | "get_loc", _hoc_get_loc_pnt, | { } 123 | "check", _hoc_check, | { } 124 | "record", _hoc_record, | { } 125 | 0, 0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | "thresh", "mV", | { } 134 | "time", "ms", | { } 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:170:15: warning: unused variable 'prop_ion' [-Wunused-variable] 170 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_apcount_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:200:13: warning: unused variable '_vectorized' [-Wunused-variable] 200 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:18: warning: unused variable '_save' [-Wunused-variable] 293 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:7: warning: unused variable '_i' [-Wunused-variable] 293 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_cur__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:35: warning: variable '_v' set but not used [-Wunused-but-set-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:29: warning: unused variable '_rhs' [-Wunused-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:9: warning: variable '_p' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_jacob__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:20: warning: unused variable '_ppvar' [-Wunused-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:420:6: warning: unused variable '_i' [-Wunused-variable] 420 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:419:21: warning: unused variable '_p' [-Wunused-variable] 419 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:416:13: warning: 'terminal' defined but not used [-Wunused-function] 416 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:28:22: warning: '_nrn_current__APCount' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__APCount | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:335:15: note: in expansion of macro '_nrn_current' 335 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:226:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 226 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:224:12: warning: '_ninits' defined but not used [-Wunused-variable] 224 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:223:12: warning: 'error' defined but not used [-Wunused-variable] 223 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:221:14: warning: 'modelname' defined but not used [-Wunused-variable] 221 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:220:12: warning: '_reset' defined but not used [-Wunused-variable] 220 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:137:16: warning: 'delta_t' defined but not used [-Wunused-variable] 137 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:111:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 111 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:188:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 188 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:82:34: warning: missing braces around initializer [-Wmissing-braces] 82 | static VoidFunc hoc_intfunc[] = { | ^ 83 | "setdata_feature", _hoc_setdata, | { } 84 | "install_vector_fitness", _hoc_install_vector_fitness, | { } 85 | 0, 0 | { 86 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:44: warning: missing braces around initializer [-Wmissing-braces] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^ 90 | 0,0,0 | { { 91 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:42: warning: missing braces around initializer [-Wmissing-braces] 92 | static HocParmUnits _hoc_parm_units[] = { | ^ 93 | 0,0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:97:33: warning: missing braces around initializer [-Wmissing-braces] 97 | static DoubScal hoc_scdoub[] = { | ^ 98 | 0,0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:100:31: warning: missing braces around initializer [-Wmissing-braces] 100 | static DoubVec hoc_vdoub[] = { | ^ 101 | 0,0,0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:120:28: warning: unused variable '_ppvar' [-Wunused-variable] 120 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:119:15: warning: unused variable 'prop_ion' [-Wunused-variable] 119 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_feature_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:135:13: warning: unused variable '_vectorized' [-Wunused-variable] 135 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'width': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:152:13: warning: unused variable 'i' [-Wunused-variable] 152 | int i, nx, ny, i1, i2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'xfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:177:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 177 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'yfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:207:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 207 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:18: warning: unused variable '_save' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:7: warning: unused variable '_i' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:324:6: warning: unused variable '_i' [-Wunused-variable] 324 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:321:13: warning: 'terminal' defined but not used [-Wunused-function] 321 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:30:19: warning: '_nrn_state_' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state_ | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:297:13: note: in expansion of macro 'nrn_state' 297 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:28:22: warning: '_nrn_current_' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current_ | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:293:15: note: in expansion of macro '_nrn_current' 293 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:25:18: warning: '_nrn_init_' defined but not used [-Wunused-function] 25 | #define nrn_init _nrn_init_ | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:272:13: note: in expansion of macro 'nrn_init' 272 | static void nrn_init(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:146:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 146 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:143:12: warning: 'error' defined but not used [-Wunused-variable] 143 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:141:14: warning: 'modelname' defined but not used [-Wunused-variable] 141 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:140:12: warning: '_reset' defined but not used [-Wunused-variable] 140 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:118:13: warning: 'nrn_alloc' defined but not used [-Wunused-function] 118 | static void nrn_alloc(Prop* _prop) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:108:21: warning: '_mechanism' defined but not used [-Wunused-variable] 108 | static const char *_mechanism[] = { | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:103:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 103 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:22: warning: '_hoc_parm_units' defined but not used [-Wunused-variable] 92 | static HocParmUnits _hoc_parm_units[] = { | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:23: warning: '_hoc_parm_limits' defined but not used [-Wunused-variable] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:60:13: warning: 'hoc_nrnpointerindex' defined but not used [-Wunused-variable] 60 | static int hoc_nrnpointerindex = -1; | ^~~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:117:34: warning: missing braces around initializer [-Wmissing-braces] 117 | static VoidFunc hoc_intfunc[] = { | ^ 118 | 0,0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:120:38: warning: missing braces around initializer [-Wmissing-braces] 120 | static Member_func _member_func[] = { | ^ 121 | "loc", _hoc_loc_pnt, | { } 122 | "has_loc", _hoc_has_loc, | { } 123 | "get_loc", _hoc_get_loc_pnt, | { } 124 | "I", _hoc_I, | { } 125 | "M", _hoc_M, | { } 126 | "firetime", _hoc_firetime, | { } 127 | "newton1", _hoc_newton1, | { } 128 | 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:140:44: warning: missing braces around initializer [-Wmissing-braces] 140 | static HocParmLimits _hoc_parm_limits[] = { | ^ 141 | 0,0,0 | { { 142 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:143:42: warning: missing braces around initializer [-Wmissing-braces] 143 | static HocParmUnits _hoc_parm_units[] = { | ^ 144 | "taus", "ms", | { } 145 | "taum", "ms", | { } 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:179:15: warning: unused variable 'prop_ion' [-Wunused-variable] 179 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_intfire2_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:212:13: warning: unused variable '_vectorized' [-Wunused-variable] 212 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'I_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:268:15: warning: variable '_lf' set but not used [-Wunused-but-set-variable] 268 | double _lx , _lf ; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'newton1_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:371:38: warning: variable '_lxm' set but not used [-Wunused-but-set-variable] 371 | double _ldx , _lf , _ldf , _liter , _lxm ; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:18: warning: unused variable '_save' [-Wunused-variable] 415 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:7: warning: unused variable '_i' [-Wunused-variable] 415 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_init__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:19: warning: unused variable '_v' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:7: warning: unused variable '_nd' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_state__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:469:6: warning: unused variable '_i' [-Wunused-variable] 469 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:468:21: warning: unused variable '_p' [-Wunused-variable] 468 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:465:13: warning: 'terminal' defined but not used [-Wunused-function] 465 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:30:19: warning: '_nrn_state__IntFire2' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire2 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:448:13: note: in expansion of macro 'nrn_state' 448 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:28:22: warning: '_nrn_current__IntFire2' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire2 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:444:15: note: in expansion of macro '_nrn_current' 444 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:243:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 243 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:241:12: warning: '_ninits' defined but not used [-Wunused-variable] 241 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:240:12: warning: 'error' defined but not used [-Wunused-variable] 240 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:238:14: warning: 'modelname' defined but not used [-Wunused-variable] 238 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:237:12: warning: '_reset' defined but not used [-Wunused-variable] 237 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:112:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 112 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:197:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 197 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:118:34: warning: missing braces around initializer [-Wmissing-braces] 118 | static VoidFunc hoc_intfunc[] = { | ^ 119 | 0,0 | { 120 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:121:38: warning: missing braces around initializer [-Wmissing-braces] 121 | static Member_func _member_func[] = { | ^ 122 | "loc", _hoc_loc_pnt, | { } 123 | "has_loc", _hoc_has_loc, | { } 124 | "get_loc", _hoc_get_loc_pnt, | { } 125 | "icur", _hoc_icur, | { } 126 | "vstim", _hoc_vstim, | { } 127 | 0, 0 | { 128 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:131:44: warning: missing braces around initializer [-Wmissing-braces] 131 | static HocParmLimits _hoc_parm_limits[] = { | ^ 132 | "rs", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "rs", "megohm", | { } 137 | "on", "ms", | { } 138 | "off", "ms", | { } 139 | "vc", "mV", | { } 140 | "i", "nA", | { } 141 | 0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:145:33: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubScal hoc_scdoub[] = { | ^ 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:148:31: warning: missing braces around initializer [-Wmissing-braces] 148 | static DoubVec hoc_vdoub[] = { | ^ 149 | 0,0,0 | { 150 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_oclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:210:13: warning: unused variable '_vectorized' [-Wunused-variable] 210 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:18: warning: unused variable '_save' [-Wunused-variable] 292 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:7: warning: unused variable '_i' [-Wunused-variable] 292 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_nrn_jacob__OClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:20: warning: unused variable '_ppvar' [-Wunused-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:461:6: warning: unused variable '_i' [-Wunused-variable] 461 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:460:21: warning: unused variable '_p' [-Wunused-variable] 460 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:457:13: warning: 'terminal' defined but not used [-Wunused-function] 457 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:236:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 236 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:234:12: warning: '_ninits' defined but not used [-Wunused-variable] 234 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:233:12: warning: 'error' defined but not used [-Wunused-variable] 233 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:231:14: warning: 'modelname' defined but not used [-Wunused-variable] 231 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:230:12: warning: '_reset' defined but not used [-Wunused-variable] 230 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:151:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 151 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:143:16: warning: 'delta_t' defined but not used [-Wunused-variable] 143 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:113:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 113 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:198:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 198 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:106:34: warning: missing braces around initializer [-Wmissing-braces] 106 | static VoidFunc hoc_intfunc[] = { | ^ 107 | 0,0 | { 108 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:109:38: warning: missing braces around initializer [-Wmissing-braces] 109 | static Member_func _member_func[] = { | ^ 110 | "loc", _hoc_loc_pnt, | { } 111 | "has_loc", _hoc_has_loc, | { } 112 | "get_loc", _hoc_get_loc_pnt, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:117:44: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmLimits _hoc_parm_limits[] = { | ^ 118 | 0,0,0 | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:120:42: warning: missing braces around initializer [-Wmissing-braces] 120 | static HocParmUnits _hoc_parm_units[] = { | ^ 121 | 0,0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:124:33: warning: missing braces around initializer [-Wmissing-braces] 124 | static DoubScal hoc_scdoub[] = { | ^ 125 | 0,0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:127:31: warning: missing braces around initializer [-Wmissing-braces] 127 | static DoubVec hoc_vdoub[] = { | ^ 128 | 0,0,0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:149:15: warning: unused variable 'prop_ion' [-Wunused-variable] 149 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_ppmark_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:176:13: warning: unused variable '_vectorized' [-Wunused-variable] 176 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:18: warning: unused variable '_save' [-Wunused-variable] 205 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:7: warning: unused variable '_i' [-Wunused-variable] 205 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_nrn_state__PointProcessMark': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:268:6: warning: unused variable '_i' [-Wunused-variable] 268 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:267:21: warning: unused variable '_p' [-Wunused-variable] 267 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:264:13: warning: 'terminal' defined but not used [-Wunused-function] 264 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:30:19: warning: '_nrn_state__PointProcessMark' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:238:13: note: in expansion of macro 'nrn_state' 238 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:28:22: warning: '_nrn_current__PointProcessMark' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:234:15: note: in expansion of macro '_nrn_current' 234 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:202:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 202 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:200:12: warning: '_ninits' defined but not used [-Wunused-variable] 200 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:199:12: warning: 'error' defined but not used [-Wunused-variable] 199 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:197:14: warning: 'modelname' defined but not used [-Wunused-variable] 197 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:196:12: warning: '_reset' defined but not used [-Wunused-variable] 196 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:130:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 130 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:101:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 101 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:62:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 62 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:164:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 164 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | "alpha", _hoc_alpha, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:128:44: warning: missing braces around initializer [-Wmissing-braces] 128 | static HocParmLimits _hoc_parm_limits[] = { | ^ 129 | "gmax", 0, 1e+09, | { { }} 130 | "tau", 0.001, 1e+06, | { { }} 131 | 0,0,0 | { { 132 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:133:42: warning: missing braces around initializer [-Wmissing-braces] 133 | static HocParmUnits _hoc_parm_units[] = { | ^ 134 | "onset", "ms", | { } 135 | "tau", "ms", | { } 136 | "gmax", "uS", | { } 137 | "e", "mV", | { } 138 | "i", "nA", | { } 139 | 0,0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:142:33: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubScal hoc_scdoub[] = { | ^ 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:145:31: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubVec hoc_vdoub[] = { | ^ 146 | 0,0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:174:15: warning: unused variable 'prop_ion' [-Wunused-variable] 174 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:205:13: warning: unused variable '_vectorized' [-Wunused-variable] 205 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:18: warning: unused variable '_save' [-Wunused-variable] 257 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:7: warning: unused variable '_i' [-Wunused-variable] 257 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_jacob__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:20: warning: unused variable '_ppvar' [-Wunused-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:368:6: warning: unused variable '_i' [-Wunused-variable] 368 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:367:21: warning: unused variable '_p' [-Wunused-variable] 367 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:364:13: warning: 'terminal' defined but not used [-Wunused-function] 364 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:231:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 231 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:229:12: warning: '_ninits' defined but not used [-Wunused-variable] 229 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:228:12: warning: 'error' defined but not used [-Wunused-variable] 228 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:226:14: warning: 'modelname' defined but not used [-Wunused-variable] 226 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:225:12: warning: '_reset' defined but not used [-Wunused-variable] 225 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:148:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 148 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:193:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 193 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_cur__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:107:26: warning: '_nd' may be used uninitialized in this function [-Wmaybe-uninitialized] 107 | #define NODERHS(n) (*((n)->_rhs)) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:300:7: note: '_nd' was declared here 300 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:119:34: warning: missing braces around initializer [-Wmissing-braces] 119 | static VoidFunc hoc_intfunc[] = { | ^ 120 | 0,0 | { 121 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:122:38: warning: missing braces around initializer [-Wmissing-braces] 122 | static Member_func _member_func[] = { | ^ 123 | "loc", _hoc_loc_pnt, | { } 124 | "has_loc", _hoc_has_loc, | { } 125 | "get_loc", _hoc_get_loc_pnt, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:130:44: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmLimits _hoc_parm_limits[] = { | ^ 131 | "tau2", 1e-09, 1e+09, | { { }} 132 | "tau1", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "tau1", "ms", | { } 137 | "tau2", "ms", | { } 138 | "e", "mV", | { } 139 | "A", "uS", | { } 140 | "B", "uS", | { } 141 | "i", "nA", | { } 142 | "g", "uS", | { } 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:191:15: warning: unused variable 'prop_ion' [-Wunused-variable] 191 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:216:46: warning: missing braces around initializer [-Wmissing-braces] 216 | static HocStateTolerance _hoc_state_tol[] = { | ^ 217 | 0,0 | { 218 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_exp2syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:227:13: warning: unused variable '_vectorized' [-Wunused-variable] 227 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_net_receive__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:325:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 325 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:340:22: warning: unused variable '_v' [-Wunused-variable] 340 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:18: warning: unused variable '_save' [-Wunused-variable] 351 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:7: warning: unused variable '_i' [-Wunused-variable] 351 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_nrn_jacob__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:20: warning: unused variable '_ppvar' [-Wunused-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:499:6: warning: unused variable '_i' [-Wunused-variable] 499 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:495:13: warning: 'terminal' defined but not used [-Wunused-function] 495 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:258:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 258 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:256:12: warning: '_ninits' defined but not used [-Wunused-variable] 256 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:255:12: warning: 'error' defined but not used [-Wunused-variable] 255 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:253:14: warning: 'modelname' defined but not used [-Wunused-variable] 253 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:252:12: warning: '_reset' defined but not used [-Wunused-variable] 252 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:147:16: warning: 'delta_t' defined but not used [-Wunused-variable] 147 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:114:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 114 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:75:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 75 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:209:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 209 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:122:34: warning: missing braces around initializer [-Wmissing-braces] 122 | static VoidFunc hoc_intfunc[] = { | ^ 123 | "setdata_hh", _hoc_setdata, | { } 124 | "rates_hh", _hoc_rates, | { } 125 | "vtrap_hh", _hoc_vtrap, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:154:44: warning: missing braces around initializer [-Wmissing-braces] 154 | static HocParmLimits _hoc_parm_limits[] = { | ^ 155 | "gl_hh", 0, 1e+09, | { { }} 156 | "gkbar_hh", 0, 1e+09, | { { }} 157 | "gnabar_hh", 0, 1e+09, | { { }} 158 | "usetable_hh", 0, 1, | { { }} 159 | 0,0,0 | { { 160 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:161:42: warning: missing braces around initializer [-Wmissing-braces] 161 | static HocParmUnits _hoc_parm_units[] = { | ^ 162 | "mtau_hh", "ms", | { } 163 | "htau_hh", "ms", | { } 164 | "ntau_hh", "ms", | { } 165 | "gnabar_hh", "S/cm2", | { } 166 | "gkbar_hh", "S/cm2", | { } 167 | "gl_hh", "S/cm2", | { } 168 | "el_hh", "mV", | { } 169 | "gna_hh", "S/cm2", | { } 170 | "gk_hh", "S/cm2", | { } 171 | "il_hh", "mA/cm2", | { } 172 | 0,0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:179:33: warning: missing braces around initializer [-Wmissing-braces] 179 | static DoubScal hoc_scdoub[] = { | ^ 180 | "minf_hh", &minf_hh, | { } 181 | "hinf_hh", &hinf_hh, | { } 182 | "ninf_hh", &ninf_hh, | { } 183 | "mtau_hh", &mtau_hh, | { } 184 | "htau_hh", &htau_hh, | { } 185 | "ntau_hh", &ntau_hh, | { } 186 | "usetable_hh", &usetable_hh, | { } 187 | 0,0 | { 188 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:189:31: warning: missing braces around initializer [-Wmissing-braces] 189 | static DoubVec hoc_vdoub[] = { | ^ 190 | 0,0,0 | { 191 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:258:46: warning: missing braces around initializer [-Wmissing-braces] 258 | static HocStateTolerance _hoc_state_tol[] = { | ^ 259 | 0,0 | { 260 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_hh_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:271:13: warning: unused variable '_vectorized' [-Wunused-variable] 271 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_check_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:356:10: warning: unused variable '_xi' [-Wunused-variable] 356 | double _xi, _tmax; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:39: warning: unused variable '_ix' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:35: warning: unused variable '_j' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_n_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:385:104: warning: unused variable '_j' [-Wunused-variable] 385 | static void _n_rates(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _lv){ int _i, _j; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:488:22: warning: unused variable '_v' [-Wunused-variable] 488 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:501:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 501 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:516:22: warning: unused variable '_v' [-Wunused-variable] 516 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:18: warning: unused variable '_save' [-Wunused-variable] 553 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:7: warning: unused variable '_i' [-Wunused-variable] 553 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_nrn_jacob__hh': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:20: warning: unused variable '_ppvar' [-Wunused-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:714:6: warning: unused variable '_i' [-Wunused-variable] 714 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:710:13: warning: 'terminal' defined but not used [-Wunused-function] 710 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:318:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 318 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:316:12: warning: '_ninits' defined but not used [-Wunused-variable] 316 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:315:12: warning: 'error' defined but not used [-Wunused-variable] 315 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:313:14: warning: 'modelname' defined but not used [-Wunused-variable] 313 | static char *modelname = "hh.mod squid sodium, potassium, and leak channels"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:312:12: warning: '_reset' defined but not used [-Wunused-variable] 312 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:192:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 192 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:174:16: warning: 'delta_t' defined but not used [-Wunused-variable] 174 | static double delta_t = 0.01; | ^~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:151:34: warning: missing braces around initializer [-Wmissing-braces] 151 | static VoidFunc hoc_intfunc[] = { | ^ 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:154:38: warning: missing braces around initializer [-Wmissing-braces] 154 | static Member_func _member_func[] = { | ^ 155 | "loc", _hoc_loc_pnt, | { } 156 | "has_loc", _hoc_has_loc, | { } 157 | "get_loc", _hoc_get_loc_pnt, | { } 158 | "E", _hoc_E, | { } 159 | "I", _hoc_I, | { } 160 | "M", _hoc_M, | { } 161 | "deriv", _hoc_deriv, | { } 162 | "firetimebound", _hoc_firetimebound, | { } 163 | "factors", _hoc_factors, | { } 164 | "fixprecondition", _hoc_fixprecondition, | { } 165 | "newstates", _hoc_newstates, | { } 166 | "search", _hoc_search, | { } 167 | "update", _hoc_update, | { } 168 | 0, 0 | { 169 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:190:44: warning: missing braces around initializer [-Wmissing-braces] 190 | static HocParmLimits _hoc_parm_limits[] = { | ^ 191 | "eps_IntFire4", 1e-09, 0.01, | { { }} 192 | "taueps_IntFire4", 1e-09, 1e+09, | { { }} 193 | "taum", 0, 1e+09, | { { }} 194 | "taui2", 0, 1e+09, | { { }} 195 | "taui1", 0, 1e+09, | { { }} 196 | "taue", 0, 1e+09, | { { }} 197 | 0,0,0 | { { 198 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:199:42: warning: missing braces around initializer [-Wmissing-braces] 199 | static HocParmUnits _hoc_parm_units[] = { | ^ 200 | "eps_IntFire4", "1e-9", | { } 201 | "taueps_IntFire4", "1e-9", | { } 202 | "taue", "ms", | { } 203 | "taui1", "ms", | { } 204 | "taui2", "ms", | { } 205 | "taum", "ms", | { } 206 | "ae", "1/ms", | { } 207 | "ai1", "1/ms", | { } 208 | "ai2", "1/ms", | { } 209 | 0,0 | { 210 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:212:33: warning: missing braces around initializer [-Wmissing-braces] 212 | static DoubScal hoc_scdoub[] = { | ^ 213 | "ib_IntFire4", &ib_IntFire4, | { } 214 | "eps_IntFire4", &eps_IntFire4, | { } 215 | "taueps_IntFire4", &taueps_IntFire4, | { } 216 | 0,0 | { 217 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:218:31: warning: missing braces around initializer [-Wmissing-braces] 218 | static DoubVec hoc_vdoub[] = { | ^ 219 | 0,0,0 | { 220 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:254:15: warning: unused variable 'prop_ion' [-Wunused-variable] 254 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_intfire4_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:288:13: warning: unused variable '_vectorized' [-Wunused-variable] 288 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:18: warning: unused variable '_save' [-Wunused-variable] 665 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:7: warning: unused variable '_i' [-Wunused-variable] 665 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_init__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:19: warning: unused variable '_v' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:7: warning: unused variable '_nd' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_state__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:723:6: warning: unused variable '_i' [-Wunused-variable] 723 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:722:21: warning: unused variable '_p' [-Wunused-variable] 722 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:719:13: warning: 'terminal' defined but not used [-Wunused-function] 719 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:30:19: warning: '_nrn_state__IntFire4' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire4 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:702:13: note: in expansion of macro 'nrn_state' 702 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:28:22: warning: '_nrn_current__IntFire4' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire4 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:698:15: note: in expansion of macro '_nrn_current' 698 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:319:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 319 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:317:12: warning: '_ninits' defined but not used [-Wunused-variable] 317 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' 316:12: warning: 'error' defined but not used [-Wunused-variable] 316 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:314:14: warning: 'modelname' defined but not used [-Wunused-variable] 314 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:313:12: warning: '_reset' defined but not used [-Wunused-variable] 313 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:221:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 221 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:146:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 146 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:273:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 273 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'search_IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:596:8: warning: '_lsearch' may be used uninitialized in this function [-Wmaybe-uninitialized] 596 | return _lsearch; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:585:17: warning: '_lt2' may be used uninitialized in this function [-Wmaybe-uninitialized] 585 | while ( _lt2 - _lt1 > 1e-6 && flag == 0.0 ) { | ~~~~~^~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:96:34: warning: missing braces around initializer [-Wmissing-braces] 96 | static VoidFunc hoc_intfunc[] = { | ^ 97 | "setdata_pas", _hoc_setdata, | { } 98 | 0, 0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:102:44: warning: missing braces around initializer [-Wmissing-braces] 102 | static HocParmLimits _hoc_parm_limits[] = { | ^ 103 | "g_pas", 0, 1e+09, | { { }} 104 | 0,0,0 | { { 105 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:106:42: warning: missing braces around initializer [-Wmissing-braces] 106 | static HocParmUnits _hoc_parm_units[] = { | ^ 107 | "g_pas", "S/cm2", | { } 108 | "e_pas", "mV", | { } 109 | "i_pas", "mA/cm2", | { } 110 | 0,0 | { 111 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:113:33: warning: missing braces around initializer [-Wmissing-braces] 113 | static DoubScal hoc_scdoub[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:116:31: warning: missing braces around initializer [-Wmissing-braces] 116 | static DoubVec hoc_vdoub[] = { | ^ 117 | 0,0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:141:28: warning: unused variable '_ppvar' [-Wunused-variable] 141 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:140:15: warning: unused variable 'prop_ion' [-Wunused-variable] 140 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_passive_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:158:13: warning: unused variable '_vectorized' [-Wunused-variable] 158 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:18: warning: unused variable '_save' [-Wunused-variable] 182 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:7: warning: unused variable '_i' [-Wunused-variable] 182 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_nrn_jacob__pas': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:20: warning: unused variable '_ppvar' [-Wunused-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:287:6: warning: unused variable '_i' [-Wunused-variable] 287 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:286:21: warning: unused variable '_p' [-Wunused-variable] 286 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:283:13: warning: 'terminal' defined but not used [-Wunused-function] 283 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:179:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 179 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:177:12: warning: '_ninits' defined but not used [-Wunused-variable] 177 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:176:12: warning: 'error' defined but not used [-Wunused-variable] 176 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:174:14: warning: 'modelname' defined but not used [-Wunused-variable] 174 | static char *modelname = "passive membrane channel"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:173:12: warning: '_reset' defined but not used [-Wunused-variable] 173 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:119:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 119 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:65:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 65 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | 0, 0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:122:44: warning: missing braces around initializer [-Wmissing-braces] 122 | static HocParmLimits _hoc_parm_limits[] = { | ^ 123 | "dur", 0, 1e+09, | { { }} 124 | 0,0,0 | { { 125 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:126:42: warning: missing braces around initializer [-Wmissing-braces] 126 | static HocParmUnits _hoc_parm_units[] = { | ^ 127 | "del", "ms", | { } 128 | "dur", "ms", | { } 129 | "amp", "nA", | { } 130 | "i", "nA", | { } 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:134:33: warning: missing braces around initializer [-Wmissing-braces] 134 | static DoubScal hoc_scdoub[] = { | ^ 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:137:31: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubVec hoc_vdoub[] = { | ^ 138 | 0,0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:165:15: warning: unused variable 'prop_ion' [-Wunused-variable] 165 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_stim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:195:13: warning: unused variable '_vectorized' [-Wunused-variable] 195 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:18: warning: unused variable '_save' [-Wunused-variable] 224 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:7: warning: unused variable '_i' [-Wunused-variable] 224 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_nrn_jacob__IClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:20: warning: unused variable '_ppvar' [-Wunused-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:369:6: warning: unused variable '_i' [-Wunused-variable] 369 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:368:21: warning: unused variable '_p' [-Wunused-variable] 368 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:365:13: warning: 'terminal' defined but not used [-Wunused-function] 365 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:221:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 221 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:219:12: warning: '_ninits' defined but not used [-Wunused-variable] 219 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:218:12: warning: 'error' defined but not used [-Wunused-variable] 218 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:216:14: warning: 'modelname' defined but not used [-Wunused-variable] 216 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:215:12: warning: '_reset' defined but not used [-Wunused-variable] 215 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:140:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 140 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:106:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 106 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:67:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 67 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:183:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 183 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "icur", _hoc_icur, | { } 136 | "update", _hoc_update, | { } 137 | "vstim", _hoc_vstim, | { } 138 | 0, 0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:144:44: warning: missing braces around initializer [-Wmissing-braces] 144 | static HocParmLimits _hoc_parm_limits[] = { | ^ 145 | "dur", 0, 1e+09, | { { }} 146 | "fac", 1, 10, | { { }} 147 | "gain", 0, 1e+09, | { { }} 148 | "rstim", 1e-09, 1e+09, | { { }} 149 | "tau2", 0, 1e+09, | { { }} 150 | "tau1", 0, 1e+09, | { { }} 151 | 0,0,0 | { { 152 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:153:42: warning: missing braces around initializer [-Wmissing-braces] 153 | static HocParmUnits _hoc_parm_units[] = { | ^ 154 | "dur", "ms", | { } 155 | "amp", "mV", | { } 156 | "rstim", "megohm", | { } 157 | "tau1", "ms", | { } 158 | "tau2", "ms", | { } 159 | "e0", "mV", | { } 160 | "vo0", "mV", | { } 161 | "vi0", "mV", | { } 162 | "fac", "1.0", | { } 163 | "e", "mV", | { } 164 | "vo", "mV", | { } 165 | "vi", "mV", | { } 166 | "i", "nA", | { } 167 | 0,0 | { 168 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:172:33: warning: missing braces around initializer [-Wmissing-braces] 172 | static DoubScal hoc_scdoub[] = { | ^ 173 | 0,0 | { 174 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:175:31: warning: missing braces around initializer [-Wmissing-braces] 175 | static DoubVec hoc_vdoub[] = { | ^ 176 | 0,0,0 | { 177 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:213:15: warning: unused variable 'prop_ion' [-Wunused-variable] 213 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_vclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:248:13: warning: unused variable '_vectorized' [-Wunused-variable] 248 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'icur_VClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:306:9: warning: unused variable '_lvout' [-Wunused-variable] 306 | double _lvout ; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:382:7: warning: unused variable '_i' [-Wunused-variable] 382 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:561:6: warning: unused variable '_i' [-Wunused-variable] 561 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:558:13: warning: 'terminal' defined but not used [-Wunused-function] 558 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:274:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 274 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:269:14: warning: 'modelname' defined but not used [-Wunused-variable] 269 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:268:12: warning: '_reset' defined but not used [-Wunused-variable] 268 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:169:16: warning: 'delta_t' defined but not used [-Wunused-variable] 169 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:236:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 236 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:125:44: warning: missing braces around initializer [-Wmissing-braces] 125 | static HocParmLimits _hoc_parm_limits[] = { | ^ 126 | "tau", 1e-09, 1e+09, | { { }} 127 | 0,0,0 | { { 128 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:129:42: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmUnits _hoc_parm_units[] = { | ^ 130 | "tau", "ms", | { } 131 | "e", "mV", | { } 132 | "g", "uS", | { } 133 | "i", "nA", | { } 134 | 0,0 | { 135 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:202:46: warning: missing braces around initializer [-Wmissing-braces] 202 | static HocStateTolerance _hoc_state_tol[] = { | ^ 203 | 0,0 | { 204 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_expsyn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:213:13: warning: unused variable '_vectorized' [-Wunused-variable] 213 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_net_receive__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:288:22: warning: unused variable '_v' [-Wunused-variable] 288 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:299:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 299 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:18: warning: unused variable '_save' [-Wunused-variable] 325 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:7: warning: unused variable '_i' [-Wunused-variable] 325 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_nrn_jacob__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:20: warning: unused variable '_ppvar' [-Wunused-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:460:6: warning: unused variable '_i' [-Wunused-variable] 460 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:456:13: warning: 'terminal' defined but not used [-Wunused-function] 456 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:244:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 244 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:242:12: warning: '_ninits' defined but not used [-Wunused-variable] 242 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:241:12: warning: 'error' defined but not used [-Wunused-variable] 241 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:239:14: warning: 'modelname' defined but not used [-Wunused-variable] 239 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:238:12: warning: '_reset' defined but not used [-Wunused-variable] 238 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:136:16: warning: 'delta_t' defined but not used [-Wunused-variable] 136 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:70:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 70 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:195:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 195 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:113:34: warning: missing braces around initializer [-Wmissing-braces] 113 | static VoidFunc hoc_intfunc[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:116:38: warning: missing braces around initializer [-Wmissing-braces] 116 | static Member_func _member_func[] = { | ^ 117 | "loc", _hoc_loc_pnt, | { } 118 | "has_loc", _hoc_has_loc, | { } 119 | "get_loc", _hoc_get_loc_pnt, | { } 120 | "M", _hoc_M, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:127:44: warning: missing braces around initializer [-Wmissing-braces] 127 | static HocParmLimits _hoc_parm_limits[] = { | ^ 128 | 0,0,0 | { { 129 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:130:42: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmUnits _hoc_parm_units[] = { | ^ 131 | "tau", "ms", | { } 132 | "refrac", "ms", | { } 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:136:33: warning: missing braces around initializer [-Wmissing-braces] 136 | static DoubScal hoc_scdoub[] = { | ^ 137 | 0,0 | { 138 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:139:31: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubVec hoc_vdoub[] = { | ^ 140 | 0,0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:164:15: warning: unused variable 'prop_ion' [-Wunused-variable] 164 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_intfire1_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:196:13: warning: unused variable '_vectorized' [-Wunused-variable] 196 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_net_receive__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:258:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 258 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:18: warning: unused variable '_save' [-Wunused-variable] 282 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:7: warning: unused variable '_i' [-Wunused-variable] 282 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_init__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:19: warning: unused variable '_v' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:7: warning: unused variable '_nd' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_state__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:332:6: warning: unused variable '_i' [-Wunused-variable] 332 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:331:21: warning: unused variable '_p' [-Wunused-variable] 331 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:328:13: warning: 'terminal' defined but not used [-Wunused-function] 328 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:30:19: warning: '_nrn_state__IntFire1' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire1 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:311:13: note: in expansion of macro 'nrn_state' 311 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:28:22: warning: '_nrn_current__IntFire1' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire1 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:307:15: note: in expansion of macro '_nrn_current' 307 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:227:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 227 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:225:12: warning: '_ninits' defined but not used [-Wunused-variable] 225 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:224:12: warning: 'error' defined but not used [-Wunused-variable] 224 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:222:14: warning: 'modelname' defined but not used [-Wunused-variable] 222 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:221:12: warning: '_reset' defined but not used [-Wunused-variable] 221 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:142:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 142 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:108:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 108 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:181:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 181 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'M_IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:243:8: warning: '_lM' may be used uninitialized in this function [-Wmaybe-uninitialized] 243 | return _lM; | ^~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "erand", _hoc_erand, | { } 136 | "init_sequence", _hoc_init_sequence, | { } 137 | "invl", _hoc_invl, | { } 138 | "next_invl", _hoc_next_invl, | { } 139 | "noiseFromRandom123", _hoc_noiseFromRandom123, | { } 140 | "noiseFromRandom", _hoc_noiseFromRandom, | { } 141 | "seed", _hoc_seed, | { } 142 | 0, 0 | { 143 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:150:44: warning: missing braces around initializer [-Wmissing-braces] 150 | static HocParmLimits _hoc_parm_limits[] = { | ^ 151 | "interval", 1e-09, 1e+09, | { { }} 152 | "noise", 0, 1, | { { }} 153 | "number", 0, 1e+09, | { { }} 154 | 0,0,0 | { { 155 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:156:42: warning: missing braces around initializer [-Wmissing-braces] 156 | static HocParmUnits _hoc_parm_units[] = { | ^ 157 | "interval", "ms", | { } 158 | "start", "ms", | { } 159 | 0,0 | { 160 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:162:33: warning: missing braces around initializer [-Wmissing-braces] 162 | static DoubScal hoc_scdoub[] = { | ^ 163 | 0,0 | { 164 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:165:31: warning: missing braces around initializer [-Wmissing-braces] 165 | static DoubVec hoc_vdoub[] = { | ^ 166 | 0,0,0 | { 167 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_netstim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:228:13: warning: unused variable '_vectorized' [-Wunused-variable] 228 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:18: warning: unused variable '_save' [-Wunused-variable] 586 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:7: warning: unused variable '_i' [-Wunused-variable] 586 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_init__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:19: warning: unused variable '_v' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:7: warning: unused variable '_nd' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_state__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:655:6: warning: unused variable '_i' [-Wunused-variable] 655 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:654:21: warning: unused variable '_p' [-Wunused-variable] 654 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:651:13: warning: 'terminal' defined but not used [-Wunused-function] 651 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:30:19: warning: '_nrn_state__NetStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__NetStim | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:634:13: note: in expansion of macro 'nrn_state' 634 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:28:22: warning: '_nrn_current__NetStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__NetStim | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:630:15: note: in expansion of macro '_nrn_current' 630 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:518:13: warning: 'bbcore_read' defined but not used [-Wunused-function] 518 | static void bbcore_read(double* x, int* d, int* xx, int* offset, _threadargsproto_) { | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:261:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 261 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:259:12: warning: '_ninits' defined but not used [-Wunused-variable] 259 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:258:12: warning: 'error' defined but not used [-Wunused-variable] 258 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:256:14: warning: 'modelname' defined but not used [-Wunused-variable] 256 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:255:12: warning: '_reset' defined but not used [-Wunused-variable] 255 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:168:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 168 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netsmake[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' tim.c:123:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 123 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:211:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 211 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | "initps", _hoc_initps, | { } 119 | "play", _hoc_play, | { } 120 | "sendgroup", _hoc_sendgroup, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:137:33: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubScal hoc_scdoub[] = { | ^ 138 | 0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:140:31: warning: missing braces around initializer [-Wmissing-braces] 140 | static DoubVec hoc_vdoub[] = { | ^ 141 | 0,0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:166:15: warning: unused variable 'prop_ion' [-Wunused-variable] 166 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_pattern_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:198:13: warning: unused variable '_vectorized' [-Wunused-variable] 198 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:18: warning: unused variable '_save' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:7: warning: unused variable '_i' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_init__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:19: warning: unused variable '_v' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:7: warning: unused variable '_nd' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_state__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:426:6: warning: unused variable '_i' [-Wunused-variable] 426 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:423:13: warning: 'terminal' defined but not used [-Wunused-function] 423 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:30:19: warning: '_nrn_state__PatternStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:408:13: note: in expansion of macro 'nrn_state' 408 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:28:22: warning: '_nrn_current__PatternStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:404:15: note: in expansion of macro '_nrn_current' 404 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:230:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 230 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:227:12: warning: 'error' defined but not used [-Wunused-variable] 227 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:225:14: warning: 'modelname' defined but not used [-Wunused-variable] 225 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:224:12: warning: '_reset' defined but not used [-Wunused-variable] 224 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:143:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 143 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:182:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 182 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:123:34: warning: missing braces around initializer [-Wmissing-braces] 123 | static VoidFunc hoc_intfunc[] = { | ^ 124 | 0,0 | { 125 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:126:38: warning: missing braces around initializer [-Wmissing-braces] 126 | static Member_func _member_func[] = { | ^ 127 | "loc", _hoc_loc_pnt, | { } 128 | "has_loc", _hoc_has_loc, | { } 129 | "get_loc", _hoc_get_loc_pnt, | { } 130 | "icur", _hoc_icur, | { } 131 | "vstim", _hoc_vstim, | { } 132 | 0, 0 | { 133 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:136:44: warning: missing braces around initializer [-Wmissing-braces] 136 | static HocParmLimits _hoc_parm_limits[] = { | ^ 137 | "dur3", 0, 1e+09, | { { }} 138 | "dur2", 0, 1e+09, | { { }} 139 | "rs", 1e-09, 1e+09, | { { }} 140 | 0,0,0 | { { 141 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:142:42: warning: missing braces around initializer [-Wmissing-braces] 142 | static HocParmUnits _hoc_parm_units[] = { | ^ 143 | "rs", "megohm", | { } 144 | "dur1", "ms", | { } 145 | "amp1", "mV", | { } 146 | "dur2", "ms", | { } 147 | "amp2", "mV", | { } 148 | "dur3", "ms", | { } 149 | "amp3", "mV", | { } 150 | "i", "nA", | { } 151 | "vc", "mV", | { } 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:156:33: warning: missing braces around initializer [-Wmissing-braces] 156 | static DoubScal hoc_scdoub[] = { | ^ 157 | 0,0 | { 158 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:159:31: warning: missing braces around initializer [-Wmissing-braces] 159 | static DoubVec hoc_vdoub[] = { | ^ 160 | 0,0,0 | { 161 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_svclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:226:13: warning: unused variable '_vectorized' [-Wunused-variable] 226 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:18: warning: unused variable '_save' [-Wunused-variable] 317 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:7: warning: unused variable '_i' [-Wunused-variable] 317 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_nrn_jacob__SEClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:20: warning: unused variable '_ppvar' [-Wunused-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:488:6: warning: unused variable '_i' [-Wunused-variable] 488 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:487:21: warning: unused variable '_p' [-Wunused-variable] 487 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:484:13: warning: 'terminal' defined but not used [-Wunused-function] 484 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:252:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 252 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:250:12: warning: '_ninits' defined but not used [-Wunused-variable] 250 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:249:12: warning: 'error' defined but not used [-Wunused-variable] 249 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:247:14: warning: 'modelname' defined but not used [-Wunused-variable] 247 | static char *modelname = "svclmp.mod"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:246:12: warning: '_reset' defined but not used [-Wunused-variable] 246 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:162:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 162 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:154:16: warning: 'delta_t' defined but not used [-Wunused-variable] 154 | static double delta_t = 1; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:118:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 118 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:214:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 214 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/ACG.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Binomial.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Complex.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/DiscUnif.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Erlang.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Geom.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/LogNorm.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/HypGeom.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/NegExp.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/MLCG.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Normal.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Poisson.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Random.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/RNG.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:93:8: warning: when initialized here [-Wreorder] 93 | inline RandomInteger::RandomInteger(long low, long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:99:8: warning: when initialized here [-Wreorder] 99 | inline RandomInteger::RandomInteger(long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:106:8: warning: when initialized here [-Wreorder] 106 | inline RandomInteger::RandomInteger(RNG *gen) | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplStat.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Uniform.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Weibull.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/builtin.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/d_vec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/d_avec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c: In function 'abort_run': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c:50:10: warning: unused variable 'tmpstr' [-Wunused-variable] 50 | char tmpstr[4]; | ^~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adams.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adams.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adeuler.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adeuler.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adrunge.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adrunge.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/advance.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/advance.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/boundary.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/boundary.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crank.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crank.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c: In function 'clsoda': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:52:20: warning: unused variable 'iout' [-Wunused-variable] 52 | static integer iout; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:44:13: warning: unused variable 'i' [-Wunused-variable] 44 | int i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:52:20: warning: 'iout' defined but not used [-Wunused-variable] 52 | static integer iout; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/deflate.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/deflate.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c: In function 'derivimplicit': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c:22:9: warning: unused variable 'i' [-Wunused-variable] 22 | int i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/scoperf.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/scoperf.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/euler.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/euler.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/expfit.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/expfit.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/exprand.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/exprand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2cmisc.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2cmisc.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/factoria.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/factoria.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:44:16: warning: 'laststep' defined but not used [-Wunused-variable] 44 | static Spline *laststep = SP0;/* the step list used on previous call */ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:42:16: warning: 'steplist' defined but not used [-Wunused-variable] 42 | static Spline *steplist = SP0; /* list of steps */ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:17:13: warning: 'RCSid' defined but not used [-Wunused-variable] 17 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:104:17: warning: missing braces around initializer [-Wmissing-braces] 104 | } eh0001_ = { 1, 6 }; | ^ | { } /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'lsoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2489:9: note: in expansion of macro 'ls0001_1' 2489 | if (ls0001_1.init == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2497:5: note: in expansion of macro 'ls0001_1' 2497 | ls0001_1.init = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2502:5: note: in expansion of macro 'ls0001_1' 2502 | ls0001_1.ntrep = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2520:18: note: in expansion of macro 'ls0001_1' 2520 | if (neq[1] > ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2524:5: note: in expansion of macro 'ls0001_1' 2524 | ls0001_1.n = neq[1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2540:25: note: in expansion of macro 'ls0001_1' 2540 | if (ml < 0 || ml >= ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2543:25: note: in expansion of macro 'ls0001_1' 2543 | if (mu < 0 || mu >= ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2553:5: note: in expansion of macro 'ls0001_1' 2553 | ls0001_1.mxstep = mxstp0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2554:5: note: in expansion of macro 'ls0001_1' 2554 | ls0001_1.mxhnil = mxhnl0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2555:5: note: in expansion of macro 'ls0001_1' 2555 | ls0001_1.hmxi = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2556:5: note: in expansion of macro 'ls0001_1' 2556 | ls0001_1.hmin = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2569:5: note: in expansion of macro 'ls0001_1' 2569 | ls0001_1.mxstep = iwork[6]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2570:9: note: in expansion of macro 'ls0001_1' 2570 | if (ls0001_1.mxstep < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2573:9: note: in expansion of macro 'ls0001_1' 2573 | if (ls0001_1.mxstep == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2574:9: note: in expansion of macro 'ls0001_1' 2574 | ls0001_1.mxstep = mxstp0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2576:5: note: in expansion of macro 'ls0001_1' 2576 | ls0001_1.mxhnil = iwork[7]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2577:9: note: in expansion of macro 'ls0001_1' 2577 | if (ls0001_1.mxhnil < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2580:9: note: in expansion of macro 'ls0001_1' 2580 | if (ls0001_1.mxhnil == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2581:9: note: in expansion of macro 'ls0001_1' 2581 | ls0001_1.mxhnil = mxhnl0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2611:5: note: in expansion of macro 'ls0001_1' 2611 | ls0001_1.hmxi = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2613:9: note: in expansion of macro 'ls0001_1' 2613 | ls0001_1.hmxi = 1. / hmax; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2615:5: note: in expansion of macro 'ls0001_1' 2615 | ls0001_1.hmin = rwork[7]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2616:9: note: in expansion of macro 'ls0001_1' 2616 | if (ls0001_1.hmin < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2637:9: note: in expansion of macro 'ls0001_1' 2637 | ls0001_1.meth = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2640:9: note: in expansion of macro 'ls0001_1' 2640 | ls0001_1.nyh = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2640:24: note: in expansion of macro 'ls0001_1' 2640 | ls0001_1.nyh = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2642:5: note: in expansion of macro 'ls0001_1' 2642 | ls0001_1.lyh = 21; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2643:37: note: in expansion of macro 'ls0001_1' 2643 | len1n = (lsa001_1.mxordn + 1) * ls0001_1.nyh + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2644:37: note: in expansion of macro 'ls0001_1' 2644 | len1s = (lsa001_1.mxords + 1) * ls0001_1.nyh + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2645:5: note: in expansion of macro 'ls0001_1' 2645 | ls0001_1.lwm = len1s + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2647:17: note: in expansion of macro 'ls0001_1' 2647 | lenwm = ls0001_1.n * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2647:30: note: in expansion of macro 'ls0001_1' 2647 | lenwm = ls0001_1.n * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2650:40: note: in expansion of macro 'ls0001_1' 2650 | lenwm = ((ml << 1) + mu + 1) * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2654:9: note: in expansion of macro 'ls0001_1' 2654 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2658:12: note: in expansion of macro 'ls0001_1' 2658 | len2 = ls0001_1.n * 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2664:5: note: in expansion of macro 'ls0001_1' 2664 | ls0001_1.liwm = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2665:13: note: in expansion of macro 'ls0001_1' 2665 | leniw = ls0001_1.n + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2667:9: note: in expansion of macro 'ls0001_1' 2667 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2683:5: note: in expansion of macro 'ls0001_1' 2683 | ls0001_1.lewt = len1 + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2689:5: note: in expansion of macro 'ls0001_1' 2689 | ls0001_1.lewt = len1c + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:5: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:22: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:38: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:5: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:22: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:39: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2719:11: note: in expansion of macro 'ls0001_1' 2719 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2740:5: note: in expansion of macro 'ls0001_1' 2740 | ls0001_1.jstart = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2741:9: note: in expansion of macro 'ls0001_1' 2741 | if (ls0001_1.n == ls0001_1.nyh) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2741:23: note: in expansion of macro 'ls0001_1' 2741 | if (ls0001_1.n == ls0001_1.nyh) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:10: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:25: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:38: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:10: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:26: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:49: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2767:5: note: in expansion of macro 'ls0001_1' 2767 | ls0001_1.uround = d1mach_(&c__4); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2768:5: note: in expansion of macro 'ls0001_1' 2768 | ls0001_1.tn = *t; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2770:5: note: in expansion of macro 'ls0001_1' 2770 | ls0001_1.maxord = lsa001_1.mxordn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2782:5: note: in expansion of macro 'ls0001_1' 2782 | ls0001_1.jstart = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2783:5: note: in expansion of macro 'ls0001_1' 2783 | ls0001_1.nhnil = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2784:5: note: in expansion of macro 'ls0001_1' 2784 | ls0001_1.nst = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2785:5: note: in expansion of macro 'ls0001_1' 2785 | ls0001_1.nje = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2786:5: note: in expansion of macro 'ls0001_1' 2786 | ls0001_1.nslast = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2787:5: note: in expansion of macro 'ls0001_1' 2787 | ls0001_1.hu = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2788:5: note: in expansion of macro 'ls0001_1' 2788 | ls0001_1.nqu = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2790:5: note: in expansion of macro 'ls0001_1' 2790 | ls0001_1.miter = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2791:5: note: in expansion of macro 'ls0001_1' 2791 | ls0001_1.ccmax = .3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2792:5: note: in expansion of macro 'ls0001_1' 2792 | ls0001_1.maxcor = 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2793:5: note: in expansion of macro 'ls0001_1' 2793 | ls0001_1.msbp = 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2794:5: note: in expansion of macro 'ls0001_1' 2794 | ls0001_1.mxncf = 10; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2797:11: note: in expansion of macro 'ls0001_1' 2797 | lf0 = ls0001_1.lyh + ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2797:26: note: in expansion of macro 'ls0001_1' 2797 | lf0 = ls0001_1.lyh + ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2799:5: note: in expansion of macro 'ls0001_1' 2799 | ls0001_1.nfe = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2802:11: note: in expansion of macro 'ls0001_1' 2802 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2805:19: note: in expansion of macro 'ls0001_1' 2805 | rwork[i + ls0001_1.lyh - 1] = y[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2809:5: note: in expansion of macro 'ls0001_1' 2809 | ls0001_1.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2810:5: note: in expansion of macro 'ls0001_1' 2810 | ls0001_1.h = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:13: note: in expansion of macro 'ls0001_1' 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:58: note: in expansion of macro 'ls0001_1' 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2812:19: note: in expansion of macro 'ls0001_1' 2812 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2813:11: note: in expansion of macro 'ls0001_1' 2813 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2815:23: note: in expansion of macro 'ls0001_1' 2815 | if (rwork[i + ls0001_1.lewt - 1] <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2819:19: note: in expansion of macro 'ls0001_1' 2819 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2819:55: note: in expansion of macro 'ls0001_1' 2819 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2849:17: note: in expansion of macro 'ls0001_1' 2849 | if (tdist < ls0001_1.uround * 2. * w0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2856:11: note: in expansion of macro 'ls0001_1' 2856 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2868:11: note: in expansion of macro 'ls0001_1' 2868 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2883:22: note: in expansion of macro 'ls0001_1' 2883 | d_1 = tol, d_2 = ls0001_1.uround * 100.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:20: note: in expansion of macro 'ls0001_1' 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:52: note: in expansion of macro 'ls0001_1' 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2897:20: note: in expansion of macro 'ls0001_1' 2897 | rh = abs(h0) * ls0001_1.hmxi; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2903:5: note: in expansion of macro 'ls0001_1' 2903 | ls0001_1.h = h0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2904:11: note: in expansion of macro 'ls0001_1' 2904 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2919:5: note: in expansion of macro 'ls0001_1' 2919 | ls0001_1.nslast = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2919:23: note: in expansion of macro 'ls0001_1' 2919 | ls0001_1.nslast = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2928:10: note: in expansion of macro 'ls0001_1' 2928 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2928:33: note: in expansion of macro 'ls0001_1' 2928 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2931:32: note: in expansion of macro 'ls0001_1' 2931 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2931:48: note: in expansion of macro 'ls0001_1' 2931 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:10: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:24: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:39: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2939:24: note: in expansion of macro 'ls0001_1' 2939 | if ((tp - *tout) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2942:10: note: in expansion of macro 'ls0001_1' 2942 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2942:33: note: in expansion of macro 'ls0001_1' 2942 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2945:10: note: in expansion of macro 'ls0001_1' 2945 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2949:10: note: in expansion of macro 'ls0001_1' 2949 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2949:33: note: in expansion of macro 'ls0001_1' 2949 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2952:27: note: in expansion of macro 'ls0001_1' 2952 | if ((tcrit - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2955:10: note: in expansion of macro 'ls0001_1' 2955 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2955:33: note: in expansion of macro 'ls0001_1' 2955 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2958:32: note: in expansion of macro 'ls0001_1' 2958 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2958:48: note: in expansion of macro 'ls0001_1' 2958 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2966:10: note: in expansion of macro 'ls0001_1' 2966 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2966:33: note: in expansion of macro 'ls0001_1' 2966 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2971:19: note: in expansion of macro 'ls0001_1' 2971 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2971:53: note: in expansion of macro 'ls0001_1' 2971 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:13: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:27: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:41: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2980:27: note: in expansion of macro 'ls0001_1' 2980 | if ((tnext - tcrit) * ls0001_1.h <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:5: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:27: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:48: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2985:9: note: in expansion of macro 'ls0001_1' 2985 | ls0001_1.jstart = -2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3001:9: note: in expansion of macro 'ls0001_1' 3001 | if (ls0001_1.meth == lsa001_1.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:9: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:24: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:43: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:13: note: in expansion of macro 'ls0001_1' 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:58: note: in expansion of macro 'ls0001_1' 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3015:19: note: in expansion of macro 'ls0001_1' 3015 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3016:11: note: in expansion of macro 'ls0001_1' 3016 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3018:23: note: in expansion of macro 'ls0001_1' 3018 | if (rwork[i + ls0001_1.lewt - 1] <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3022:19: note: in expansion of macro 'ls0001_1' 3022 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3022:55: note: in expansion of macro 'ls0001_1' 3022 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:13: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:40: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:59: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3026:19: note: in expansion of macro 'ls0001_1' 3026 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3031:9: note: in expansion of macro 'ls0001_1' 3031 | if (ls0001_1.nst == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:9: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:23: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:37: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3039:7: note: in expansion of macro 'ls0001_1' 3039 | ++ls0001_1.nhnil; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3040:9: note: in expansion of macro 'ls0001_1' 3040 | if (ls0001_1.nhnil > ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3040:26: note: in expansion of macro 'ls0001_1' 3040 | if (ls0001_1.nhnil > ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3050:57: note: in expansion of macro 'ls0001_1' 3050 | c__101, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3051:13: note: in expansion of macro 'ls0001_1' 3051 | ls0001_1.h, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3052:9: note: in expansion of macro 'ls0001_1' 3052 | if (ls0001_1.nhnil < ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3052:26: note: in expansion of macro 'ls0001_1' 3052 | if (ls0001_1.nhnil < ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3059:36: note: in expansion of macro 'ls0001_1' 3059 | c__102, &c__0, &c__1, &ls0001_1.mxhnil, &c__0, &c__0, &c_b136, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3068:35: note: in expansion of macro 'ls0001_1' 3068 | stoda_(&neq[1], &y[1], &rwork[ls0001_1.lyh], &ls0001_1.nyh, &rwork[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3068:51: note: in expansion of macro 'ls0001_1' 3068 | stoda_(&neq[1], &y[1], &rwork[ls0001_1.lyh], &ls0001_1.nyh, &rwork[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:13: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:35: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:58: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:19: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:43: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:65: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3072:15: note: in expansion of macro 'ls0001_1' 3072 | kgo = 1 - ls0001_1.kflag; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3091:5: note: in expansion of macro 'ls0001_1' 3091 | ls0001_1.init = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3092:9: note: in expansion of macro 'ls0001_1' 3092 | if (ls0001_1.meth == lsa001_1.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3095:20: note: in expansion of macro 'ls0001_1' 3095 | lsa001_1.tsw = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3096:5: note: in expansion of macro 'ls0001_1' 3096 | ls0001_1.maxord = lsa001_1.mxordn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3097:9: note: in expansion of macro 'ls0001_1' 3097 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3098:9: note: in expansion of macro 'ls0001_1' 3098 | ls0001_1.maxord = lsa001_1.mxords; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3100:9: note: in expansion of macro 'ls0001_1' 3100 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3101:15: note: in expansion of macro 'ls0001_1' 3101 | rwork[ls0001_1.lwm] = sqrt(ls0001_1.uround); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3101:36: note: in expansion of macro 'ls0001_1' 3101 | rwork[ls0001_1.lwm] = sqrt(ls0001_1.uround); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3105:5: note: in expansion of macro 'ls0001_1' 3105 | ls0001_1.jstart = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3109:9: note: in expansion of macro 'ls0001_1' 3109 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3114:9: note: in expansion of macro 'ls0001_1' 3114 | if (ls0001_1.meth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3120:44: note: in expansion of macro 'ls0001_1' 3120 | c__60, &c__107, &c__0, &c__1, &ls0001_1.nst, &c__0, &c__2, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3121:13: note: in expansion of macro 'ls0001_1' 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3121:27: note: in expansion of macro 'ls0001_1' 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3133:10: note: in expansion of macro 'ls0001_1' 3133 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3133:33: note: in expansion of macro 'ls0001_1' 3133 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3136:32: note: in expansion of macro 'ls0001_1' 3136 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3136:48: note: in expansion of macro 'ls0001_1' 3136 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3142:10: note: in expansion of macro 'ls0001_1' 3142 | if ((ls0001_1.tn - *tout) * ls0001_1.h >= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3142:33: note: in expansion of macro 'ls0001_1' 3142 | if ((ls0001_1.tn - *tout) * ls0001_1.h >= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3149:10: note: in expansion of macro 'ls0001_1' 3149 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3149:33: note: in expansion of macro 'ls0001_1' 3149 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3152:32: note: in expansion of macro 'ls0001_1' 3152 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3152:48: note: in expansion of macro 'ls0001_1' 3152 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3157:19: note: in expansion of macro 'ls0001_1' 3157 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3157:53: note: in expansion of macro 'ls0001_1' 3157 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:13: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:27: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:41: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3163:27: note: in expansion of macro 'ls0001_1' 3163 | if ((tnext - tcrit) * ls0001_1.h <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:5: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:27: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:48: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3167:5: note: in expansion of macro 'ls0001_1' 3167 | ls0001_1.jstart = -2; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3173:19: note: in expansion of macro 'ls0001_1' 3173 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3173:53: note: in expansion of macro 'ls0001_1' 3173 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3187:11: note: in expansion of macro 'ls0001_1' 3187 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3190:26: note: in expansion of macro 'ls0001_1' 3190 | y[i] = rwork[i + ls0001_1.lyh - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3192:10: note: in expansion of macro 'ls0001_1' 3192 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3201:5: note: in expansion of macro 'ls0001_1' 3201 | ls0001_1.illin = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3202:17: note: in expansion of macro 'ls0001_1' 3202 | rwork[11] = ls0001_1.hu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3203:17: note: in expansion of macro 'ls0001_1' 3203 | rwork[12] = ls0001_1.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3204:17: note: in expansion of macro 'ls0001_1' 3204 | rwork[13] = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3206:17: note: in expansion of macro 'ls0001_1' 3206 | iwork[11] = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3207:17: note: in expansion of macro 'ls0001_1' 3207 | iwork[12] = ls0001_1.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3208:17: note: in expansion of macro 'ls0001_1' 3208 | iwork[13] = ls0001_1.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3209:17: note: in expansion of macro 'ls0001_1' 3209 | iwork[14] = ls0001_1.nqu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3210:17: note: in expansion of macro 'ls0001_1' 3210 | iwork[15] = ls0001_1.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3212:17: note: in expansion of macro 'ls0001_1' 3212 | iwork[20] = ls0001_1.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3216:7: note: in expansion of macro 'ls0001_1' 3216 | ++ls0001_1.ntrep; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3217:9: note: in expansion of macro 'ls0001_1' 3217 | if (ls0001_1.ntrep < 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3244:36: note: in expansion of macro 'ls0001_1' 3244 | c__201, &c__0, &c__1, &ls0001_1.mxstep, &c__0, &c__1, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3245:13: note: in expansion of macro 'ls0001_1' 3245 | ls0001_1.tn, &c_b136, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3251:18: note: in expansion of macro 'ls0001_1' 3251 | ewti = rwork[ls0001_1.lewt + i - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3253:54: note: in expansion of macro 'ls0001_1' 3253 | c__202, &c__0, &c__1, &i, &c__0, &c__2, &ls0001_1.tn, &ewti, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3264:57: note: in expansion of macro 'ls0001_1' 3264 | c__203, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, &tolsf, | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3276:57: note: in expansion of macro 'ls0001_1' 3276 | c__204, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3277:13: note: in expansion of macro 'ls0001_1' 3277 | ls0001_1.h, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3290:34: note: in expansion of macro 'ls0001_1' 3290 | c__0, &c__0, &c__2, &ls0001_1.tn, &ls0001_1.h, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3290:48: note: in expansion of macro 'ls0001_1' 3290 | c__0, &c__0, &c__2, &ls0001_1.tn, &ls0001_1.h, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3300:65: note: in expansion of macro 'ls0001_1' 3300 | c__60, &c__206, &c__0, &c__0, &c__0, &c__0, &c__1, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3311:65: note: in expansion of macro 'ls0001_1' 3311 | c__60, &c__207, &c__0, &c__0, &c__0, &c__0, &c__1, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3320:11: note: in expansion of macro 'ls0001_1' 3320 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3322:33: note: in expansion of macro 'ls0001_1' 3322 | size = (d_1 = rwork[i + ls0001_1.lacor - 1] * rwork[i + ls0001_1.lewt | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3322:65: note: in expansion of macro 'ls0001_1' 3322 | size = (d_1 = rwork[i + ls0001_1.lacor - 1] * rwork[i + ls0001_1.lewt | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3336:11: note: in expansion of macro 'ls0001_1' 3336 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3339:26: note: in expansion of macro 'ls0001_1' 3339 | y[i] = rwork[i + ls0001_1.lyh - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3341:10: note: in expansion of macro 'ls0001_1' 3341 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3342:5: note: in expansion of macro 'ls0001_1' 3342 | ls0001_1.illin = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3343:17: note: in expansion of macro 'ls0001_1' 3343 | rwork[11] = ls0001_1.hu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3344:17: note: in expansion of macro 'ls0001_1' 3344 | rwork[12] = ls0001_1.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3345:17: note: in expansion of macro 'ls0001_1' 3345 | rwork[13] = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3347:17: note: in expansion of macro 'ls0001_1' 3347 | iwork[11] = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3348:17: note: in expansion of macro 'ls0001_1' 3348 | iwork[12] = ls0001_1.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3349:17: note: in expansion of macro 'ls0001_1' 3349 | iwork[13] = ls0001_1.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3350:17: note: in expansion of macro 'ls0001_1' 3350 | iwork[14] = ls0001_1.nqu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3351:17: note: in expansion of macro 'ls0001_1' 3351 | iwork[15] = ls0001_1.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3353:17: note: in expansion of macro 'ls0001_1' 3353 | iwork[20] = ls0001_1.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3383:34: note: in expansion of macro 'ls0001_1' 3383 | c__5, &c__0, &c__2, &ls0001_1.n, &neq[1], &c__0, &c_b136, &c_b136, | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3412:13: note: in expansion of macro 'ls0001_1' 3412 | ls0001_1.mxstep, &c__0, &c__0, &c_b136, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3416:13: note: in expansion of macro 'ls0001_1' 3416 | ls0001_1.mxhnil, &c__0, &c__0, &c_b136, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3430:34: note: in expansion of macro 'ls0001_1' 3430 | c__0, &c__0, &c__1, &ls0001_1.hmin, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3451:18: note: in expansion of macro 'ls0001_1' 3451 | ewti = rwork[ls0001_1.lewt + i - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3467:13: note: in expansion of macro 'ls0001_1' 3467 | ls0001_1.tn, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3495:9: note: in expansion of macro 'ls0001_1' 3495 | if (ls0001_1.illin == 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3498:7: note: in expansion of macro 'ls0001_1' 3498 | ++ls0001_1.illin; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:1461:49: warning: variable 'lenrws' set but not used [-Wunused-but-set-variable] 1461 | static integer leniwc, lenrwc, lf0, lenrwn, lenrws; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:1461:41: warning: variable 'lenrwn' set but not used [-Wunused-but-set-variable] 1461 | static integer leniwc, lenrwc, lf0, lenrwn, lenrws; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'prja_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3597:7: note: in expansion of macro 'ls0001_2' 3597 | ++ls0001_2.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3598:5: note: in expansion of macro 'ls0001_2' 3598 | ls0001_2.ierpj = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3599:5: note: in expansion of macro 'ls0001_2' 3599 | ls0001_2.jcur = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3600:11: note: in expansion of macro 'ls0001_2' 3600 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3600:24: note: in expansion of macro 'ls0001_2' 3600 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3601:18: note: in expansion of macro 'ls0001_2' 3601 | switch ((int)ls0001_2.miter) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3611:12: note: in expansion of macro 'ls0001_2' 3611 | lenp = ls0001_2.n * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3611:25: note: in expansion of macro 'ls0001_2' 3611 | lenp = ls0001_2.n * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:22: note: in expansion of macro 'ls0001_2' 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:65: note: in expansion of macro 'ls0001_2' 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3628:20: note: in expansion of macro 'ls0001_2' 3628 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:34: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:65: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3636:11: note: in expansion of macro 'ls0001_2' 3636 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3644:24: note: in expansion of macro 'ls0001_2' 3644 | (*f)(&neq[1], &ls0001_2.tn, &y[1], &ftem[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3645:15: note: in expansion of macro 'ls0001_2' 3645 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3651:15: note: in expansion of macro 'ls0001_2' 3651 | j1 += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:5: note: in expansion of macro 'ls0001_2' 3654 | ls0001_2.nfe += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:21: note: in expansion of macro 'ls0001_2' 3654 | ls0001_2.nfe += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3658:31: note: in expansion of macro 'ls0001_2' 3658 | lsa001_2.pdnorm = fnorm_(&ls0001_2.n, &wm[3], &ewt[1]) / abs(hl0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3661:11: note: in expansion of macro 'ls0001_2' 3661 | np1 = ls0001_2.n + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3663:11: note: in expansion of macro 'ls0001_2' 3663 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3671:21: note: in expansion of macro 'ls0001_2' 3671 | dgefa_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3671:34: note: in expansion of macro 'ls0001_2' 3671 | dgefa_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3673:9: note: in expansion of macro 'ls0001_2' 3673 | ls0001_2.ierpj = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3688:21: note: in expansion of macro 'ls0001_2' 3688 | lenp = meband * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3694:22: note: in expansion of macro 'ls0001_2' 3694 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &ml, &mu, &wm[ml3], &meband); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3708:21: note: in expansion of macro 'ls0001_2' 3708 | mba = min(mband,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3708:21: note: in expansion of macro 'ls0001_2' 3708 | mba = min(mband,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3712:20: note: in expansion of macro 'ls0001_2' 3712 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:34: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:65: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3720:15: note: in expansion of macro 'ls0001_2' 3720 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3730:24: note: in expansion of macro 'ls0001_2' 3730 | (*f)(&neq[1], &ls0001_2.tn, &y[1], &ftem[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3731:15: note: in expansion of macro 'ls0001_2' 3731 | i_3 = ls0001_2.n; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3745:26: note: in expansion of macro 'ls0001_2' 3745 | i2 = min(i_4,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3745:26: note: in expansion of macro 'ls0001_2' 3745 | i2 = min(i_4,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:5: note: in expansion of macro 'ls0001_2' 3756 | ls0001_2.nfe += mba; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3760:31: note: in expansion of macro 'ls0001_2' 3760 | lsa001_2.pdnorm = bnorm_(&ls0001_2.n, &wm[3], &meband, &ml, &mu, &ewt[1]) | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3765:11: note: in expansion of macro 'ls0001_2' 3765 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3773:30: note: in expansion of macro 'ls0001_2' 3773 | dgbfa_(&wm[3], &meband, &ls0001_2.n, &ml, &mu, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3775:9: note: in expansion of macro 'ls0001_2' 3775 | ls0001_2.ierpj = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'solsy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3835:5: note: in expansion of macro 'ls0001_2' 3835 | ls0001_2.iersl = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3836:18: note: in expansion of macro 'ls0001_2' 3836 | switch ((int)ls0001_2.miter) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3844:21: note: in expansion of macro 'ls0001_2' 3844 | dgesl_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3844:34: note: in expansion of macro 'ls0001_2' 3844 | dgesl_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3849:11: note: in expansion of macro 'ls0001_2' 3849 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3849:24: note: in expansion of macro 'ls0001_2' 3849 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3855:11: note: in expansion of macro 'ls0001_2' 3855 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3865:11: note: in expansion of macro 'ls0001_2' 3865 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3872:5: note: in expansion of macro 'ls0001_2' 3872 | ls0001_2.iersl = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3879:30: note: in expansion of macro 'ls0001_2' 3879 | dgbsl_(&wm[3], &meband, &ls0001_2.n, &ml, &mu, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'stoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3958:5: note: in expansion of macro 'ls0001_3' 3958 | ls0001_3.kflag = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3959:12: note: in expansion of macro 'ls0001_3' 3959 | told = ls0001_3.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3961:5: note: in expansion of macro 'ls0001_3' 3961 | ls0001_3.ierpj = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3962:5: note: in expansion of macro 'ls0001_3' 3962 | ls0001_3.iersl = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3963:5: note: in expansion of macro 'ls0001_3' 3963 | ls0001_3.jcur = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3964:5: note: in expansion of macro 'ls0001_3' 3964 | ls0001_3.icf = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3966:9: note: in expansion of macro 'ls0001_3' 3966 | if (ls0001_3.jstart > 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3969:9: note: in expansion of macro 'ls0001_3' 3969 | if (ls0001_3.jstart == -1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3972:9: note: in expansion of macro 'ls0001_3' 3972 | if (ls0001_3.jstart == -2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3986:5: note: in expansion of macro 'ls0001_3' 3986 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3986:21: note: in expansion of macro 'ls0001_3' 3986 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3987:5: note: in expansion of macro 'ls0001_3' 3987 | ls0001_3.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3988:5: note: in expansion of macro 'ls0001_3' 3988 | ls0001_3.l = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3989:5: note: in expansion of macro 'ls0001_3' 3989 | ls0001_3.ialth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3990:5: note: in expansion of macro 'ls0001_3' 3990 | ls0001_3.rmax = 1e4; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3991:5: note: in expansion of macro 'ls0001_3' 3991 | ls0001_3.rc = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3992:5: note: in expansion of macro 'ls0001_3' 3992 | ls0001_3.el0 = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3993:5: note: in expansion of macro 'ls0001_3' 3993 | ls0001_3.crate = .7; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3994:5: note: in expansion of macro 'ls0001_3' 3994 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3994:21: note: in expansion of macro 'ls0001_3' 3994 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3995:5: note: in expansion of macro 'ls0001_3' 3995 | ls0001_3.nslp = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3996:5: note: in expansion of macro 'ls0001_3' 3996 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3996:21: note: in expansion of macro 'ls0001_3' 3996 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4005:19: note: in expansion of macro 'ls0001_3' 4005 | cfode_(&c__2, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4005:34: note: in expansion of macro 'ls0001_3' 4005 | cfode_(&c__2, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4008:31: note: in expansion of macro 'ls0001_3' 4008 | lsa001_3.cm2[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4008:59: note: in expansion of macro 'ls0001_3' 4008 | lsa001_3.cm2[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4011:19: note: in expansion of macro 'ls0001_3' 4011 | cfode_(&c__1, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4011:34: note: in expansion of macro 'ls0001_3' 4011 | cfode_(&c__1, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4014:31: note: in expansion of macro 'ls0001_3' 4014 | lsa001_3.cm1[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4014:59: note: in expansion of macro 'ls0001_3' 4014 | lsa001_3.cm1[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4032:5: note: in expansion of macro 'ls0001_3' 4032 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4032:21: note: in expansion of macro 'ls0001_3' 4032 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4033:5: note: in expansion of macro 'ls0001_3' 4033 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4033:21: note: in expansion of macro 'ls0001_3' 4033 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4034:9: note: in expansion of macro 'ls0001_3' 4034 | if (ls0001_3.ialth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4035:9: note: in expansion of macro 'ls0001_3' 4035 | ls0001_3.ialth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4037:9: note: in expansion of macro 'ls0001_3' 4037 | if (ls0001_3.meth == lsa001_3.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:13: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:28: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:43: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4041:5: note: in expansion of macro 'ls0001_3' 4041 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4041:22: note: in expansion of macro 'ls0001_3' 4041 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4050:11: note: in expansion of macro 'ls0001_3' 4050 | i_1 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:9: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:30: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:48: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4055:5: note: in expansion of macro 'ls0001_3' 4055 | ls0001_3.nqnyh = ls0001_3.nq * *nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4055:22: note: in expansion of macro 'ls0001_3' 4055 | ls0001_3.nqnyh = ls0001_3.nq * *nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:5: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:19: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:33: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:50: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4057:5: note: in expansion of macro 'ls0001_3' 4057 | ls0001_3.el0 = ls0001_3.el[0]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4057:20: note: in expansion of macro 'ls0001_3' 4057 | ls0001_3.el0 = ls0001_3.el[0]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4058:5: note: in expansion of macro 'ls0001_3' 4058 | ls0001_3.conit = .5 / (doublereal) (ls0001_3.nq + 2); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4058:41: note: in expansion of macro 'ls0001_3' 4058 | ls0001_3.conit = .5 / (doublereal) (ls0001_3.nq + 2); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4073:9: note: in expansion of macro 'ls0001_3' 4073 | if (ls0001_3.h == ls0001_3.hold) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4073:23: note: in expansion of macro 'ls0001_3' 4073 | if (ls0001_3.h == ls0001_3.hold) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4076:10: note: in expansion of macro 'ls0001_3' 4076 | rh = ls0001_3.h / ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4076:23: note: in expansion of macro 'ls0001_3' 4076 | rh = ls0001_3.h / ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4077:5: note: in expansion of macro 'ls0001_3' 4077 | ls0001_3.h = ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4077:18: note: in expansion of macro 'ls0001_3' 4077 | ls0001_3.h = ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:21: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4085:17: note: in expansion of macro 'ls0001_3' 4085 | rh = min(rh,ls0001_3.rmax); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4085:17: note: in expansion of macro 'ls0001_3' 4085 | rh = min(rh,ls0001_3.rmax); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:39: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4097:9: note: in expansion of macro 'ls0001_3' 4097 | if (ls0001_3.meth == 2) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4104:34: note: in expansion of macro 'ls0001_3' 4104 | if (rh * pdh * 1.00001 < sm1[ls0001_3.nq - 1]) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4107:14: note: in expansion of macro 'ls0001_3' 4107 | rh = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4111:11: note: in expansion of macro 'ls0001_3' 4111 | i_1 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4114:15: note: in expansion of macro 'ls0001_3' 4114 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:5: note: in expansion of macro 'ls0001_3' 4120 | ls0001_3.h *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:5: note: in expansion of macro 'ls0001_3' 4121 | ls0001_3.rc *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4122:5: note: in expansion of macro 'ls0001_3' 4122 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4122:22: note: in expansion of macro 'ls0001_3' 4122 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4137:16: note: in expansion of macro 'ls0001_3' 4137 | if ((d_1 = ls0001_3.rc - 1., abs(d_1)) > ls0001_3.ccmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4137:46: note: in expansion of macro 'ls0001_3' 4137 | if ((d_1 = ls0001_3.rc - 1., abs(d_1)) > ls0001_3.ccmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4138:9: note: in expansion of macro 'ls0001_3' 4138 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4138:25: note: in expansion of macro 'ls0001_3' 4138 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:9: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:25: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:41: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4141:9: note: in expansion of macro 'ls0001_3' 4141 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4141:25: note: in expansion of macro 'ls0001_3' 4141 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:5: note: in expansion of macro 'ls0001_3' 4143 | ls0001_3.tn += ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:20: note: in expansion of macro 'ls0001_3' 4143 | ls0001_3.tn += ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4144:10: note: in expansion of macro 'ls0001_3' 4144 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4145:11: note: in expansion of macro 'ls0001_3' 4145 | i_2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4149:15: note: in expansion of macro 'ls0001_3' 4149 | i_1 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4156:22: note: in expansion of macro 'ls0001_3' 4156 | pnorm = vmnorm_(&ls0001_3.n, &yh1[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4170:11: note: in expansion of macro 'ls0001_3' 4170 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4175:20: note: in expansion of macro 'ls0001_3' 4175 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4176:7: note: in expansion of macro 'ls0001_3' 4176 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4177:9: note: in expansion of macro 'ls0001_3' 4177 | if (ls0001_3.ipup <= 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4189:5: note: in expansion of macro 'ls0001_3' 4189 | ls0001_3.ipup = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4190:5: note: in expansion of macro 'ls0001_3' 4190 | ls0001_3.rc = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4191:5: note: in expansion of macro 'ls0001_3' 4191 | ls0001_3.nslp = ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4191:21: note: in expansion of macro 'ls0001_3' 4191 | ls0001_3.nslp = ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4192:5: note: in expansion of macro 'ls0001_3' 4192 | ls0001_3.crate = .7; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4193:9: note: in expansion of macro 'ls0001_3' 4193 | if (ls0001_3.ierpj != 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4197:11: note: in expansion of macro 'ls0001_3' 4197 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4203:9: note: in expansion of macro 'ls0001_3' 4203 | if (ls0001_3.miter != 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4212:11: note: in expansion of macro 'ls0001_3' 4212 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4214:19: note: in expansion of macro 'ls0001_3' 4214 | savf[i] = ls0001_3.h * savf[i] - yh[i + (yh_dim1 << 1)]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4218:20: note: in expansion of macro 'ls0001_3' 4218 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4219:11: note: in expansion of macro 'ls0001_3' 4219 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4221:34: note: in expansion of macro 'ls0001_3' 4221 | y[i] = yh[i + yh_dim1] + ls0001_3.el[0] * savf[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4234:11: note: in expansion of macro 'ls0001_3' 4234 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4237:16: note: in expansion of macro 'ls0001_3' 4237 | y[i] = ls0001_3.h * savf[i] - (yh[i + (yh_dim1 << 1)] + acor[i]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4240:9: note: in expansion of macro 'ls0001_3' 4240 | if (ls0001_3.iersl < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4243:9: note: in expansion of macro 'ls0001_3' 4243 | if (ls0001_3.iersl > 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4246:20: note: in expansion of macro 'ls0001_3' 4246 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4247:11: note: in expansion of macro 'ls0001_3' 4247 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4251:34: note: in expansion of macro 'ls0001_3' 4251 | y[i] = yh[i + yh_dim1] + ls0001_3.el[0] * acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4268:31: note: in expansion of macro 'ls0001_3' 4268 | if (del <= pnorm * 100. * ls0001_3.uround) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4271:19: note: in expansion of macro 'ls0001_3' 4271 | if (m == 0 && ls0001_3.meth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4283:11: note: in expansion of macro 'ls0001_3' 4283 | d_1 = ls0001_3.crate * .2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4284:5: note: in expansion of macro 'ls0001_3' 4284 | ls0001_3.crate = max(d_1,rm); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4287:21: note: in expansion of macro 'ls0001_3' 4287 | d_1 = 1., d_2 = ls0001_3.crate * 1.5; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4288:34: note: in expansion of macro 'ls0001_3' 4288 | dcon = del * min(d_1,d_2) / (ls0001_3.tesco[ls0001_3.nq * 3 - 2] * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4288:49: note: in expansion of macro 'ls0001_3' 4288 | dcon = del * min(d_1,d_2) / (ls0001_3.tesco[ls0001_3.nq * 3 - 2] * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4289:13: note: in expansion of macro 'ls0001_3' 4289 | ls0001_3.conit); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4294:47: note: in expansion of macro 'ls0001_3' 4294 | d_2 = lsa001_3.pdest, d_3 = rate / (d_1 = ls0001_3.h * ls0001_3.el[0], | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4294:60: note: in expansion of macro 'ls0001_3' 4294 | d_2 = lsa001_3.pdest, d_3 = rate / (d_1 = ls0001_3.h * ls0001_3.el[0], | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4303:14: note: in expansion of macro 'ls0001_3' 4303 | if (m == ls0001_3.maxcor) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4310:20: note: in expansion of macro 'ls0001_3' 4310 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4311:7: note: in expansion of macro 'ls0001_3' 4311 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4323:9: note: in expansion of macro 'ls0001_3' 4323 | if (ls0001_3.miter == 0 || ls0001_3.jcur == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4323:32: note: in expansion of macro 'ls0001_3' 4323 | if (ls0001_3.miter == 0 || ls0001_3.jcur == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4326:5: note: in expansion of macro 'ls0001_3' 4326 | ls0001_3.icf = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4327:5: note: in expansion of macro 'ls0001_3' 4327 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4327:21: note: in expansion of macro 'ls0001_3' 4327 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4330:5: note: in expansion of macro 'ls0001_3' 4330 | ls0001_3.icf = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4332:5: note: in expansion of macro 'ls0001_3' 4332 | ls0001_3.rmax = 2.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4333:5: note: in expansion of macro 'ls0001_3' 4333 | ls0001_3.tn = told; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4334:10: note: in expansion of macro 'ls0001_3' 4334 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4335:11: note: in expansion of macro 'ls0001_3' 4335 | i_2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4339:15: note: in expansion of macro 'ls0001_3' 4339 | i_1 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4346:9: note: in expansion of macro 'ls0001_3' 4346 | if (ls0001_3.ierpj < 0 || ls0001_3.iersl < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4346:31: note: in expansion of macro 'ls0001_3' 4346 | if (ls0001_3.ierpj < 0 || ls0001_3.iersl < 0) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:28: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4352:16: note: in expansion of macro 'ls0001_3' 4352 | if (ncf == ls0001_3.mxncf) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4356:5: note: in expansion of macro 'ls0001_3' 4356 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4356:21: note: in expansion of macro 'ls0001_3' 4356 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4368:5: note: in expansion of macro 'ls0001_3' 4368 | ls0001_3.jcur = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4370:21: note: in expansion of macro 'ls0001_3' 4370 | dsm = del / ls0001_3.tesco[ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4370:36: note: in expansion of macro 'ls0001_3' 4370 | dsm = del / ls0001_3.tesco[ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:24: note: in expansion of macro 'ls0001_3' 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:57: note: in expansion of macro 'ls0001_3' 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4374:17: note: in expansion of macro 'ls0001_3' 4374 | ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4395:5: note: in expansion of macro 'ls0001_3' 4395 | ls0001_3.kflag = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4397:7: note: in expansion of macro 'ls0001_3' 4397 | ++ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4398:5: note: in expansion of macro 'ls0001_3' 4398 | ls0001_3.hu = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4398:19: note: in expansion of macro 'ls0001_3' 4398 | ls0001_3.hu = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4399:5: note: in expansion of macro 'ls0001_3' 4399 | ls0001_3.nqu = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4399:20: note: in expansion of macro 'ls0001_3' 4399 | ls0001_3.nqu = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4400:22: note: in expansion of macro 'ls0001_3' 4400 | lsa001_3.mused = ls0001_3.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4401:11: note: in expansion of macro 'ls0001_3' 4401 | i_2 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4403:15: note: in expansion of macro 'ls0001_3' 4403 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4406:36: note: in expansion of macro 'ls0001_3' 4406 | yh[i + j * yh_dim1] += ls0001_3.el[j - 1] * acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4413:9: note: in expansion of macro 'ls0001_3' 4413 | if (ls0001_3.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4438:9: note: in expansion of macro 'ls0001_3' 4438 | if (ls0001_3.nq > 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4441:30: note: in expansion of macro 'ls0001_3' 4441 | if (dsm > pnorm * 100. * ls0001_3.uround && lsa001_3.pdest != 0.) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:20: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4448:16: note: in expansion of macro 'ls0001_3' 4448 | nqm2 = min(ls0001_3.nq,lsa001_3.mxords); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:33: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4448:16: note: in expansion of macro 'ls0001_3' 4448 | nqm2 = min(ls0001_3.nq,lsa001_3.mxords); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4451:30: note: in expansion of macro 'ls0001_3' 4451 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4456:21: note: in expansion of macro 'ls0001_3' 4456 | rh1it = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4459:9: note: in expansion of macro 'ls0001_3' 4459 | if (ls0001_3.nq <= lsa001_3.mxords) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4466:20: note: in expansion of macro 'ls0001_3' 4466 | dm2 = vmnorm_(&ls0001_3.n, &yh[lm2p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4471:31: note: in expansion of macro 'ls0001_3' 4471 | dm2 = dsm * (lsa001_3.cm1[ls0001_3.nq - 1] / lsa001_3.cm2[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4471:63: note: in expansion of macro 'ls0001_3' 4471 | dm2 = dsm * (lsa001_3.cm1[ls0001_3.nq - 1] / lsa001_3.cm2[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4474:12: note: in expansion of macro 'ls0001_3' 4474 | nqm2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4484:5: note: in expansion of macro 'ls0001_3' 4484 | ls0001_3.meth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4485:5: note: in expansion of macro 'ls0001_3' 4485 | ls0001_3.miter = lsa001_3.jtyp; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4487:5: note: in expansion of macro 'ls0001_3' 4487 | ls0001_3.nq = nqm2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4488:5: note: in expansion of macro 'ls0001_3' 4488 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4488:18: note: in expansion of macro 'ls0001_3' 4488 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4504:30: note: in expansion of macro 'ls0001_3' 4504 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4505:28: note: in expansion of macro 'ls0001_3' 4505 | if (lsa001_3.mxordn >= ls0001_3.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4512:20: note: in expansion of macro 'ls0001_3' 4512 | dm1 = vmnorm_(&ls0001_3.n, &yh[lm1p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4517:31: note: in expansion of macro 'ls0001_3' 4517 | dm1 = dsm * (lsa001_3.cm2[ls0001_3.nq - 1] / lsa001_3.cm1[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4517:63: note: in expansion of macro 'ls0001_3' 4517 | dm1 = dsm * (lsa001_3.cm2[ls0001_3.nq - 1] / lsa001_3.cm1[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4520:12: note: in expansion of macro 'ls0001_3' 4520 | nqm1 = ls0001_3.nq; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4535:16: note: in expansion of macro 'ls0001_3' 4535 | if (dm1 <= ls0001_3.uround * 1e3 * pnorm) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4542:5: note: in expansion of macro 'ls0001_3' 4542 | ls0001_3.meth = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4543:5: note: in expansion of macro 'ls0001_3' 4543 | ls0001_3.miter = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4545:5: note: in expansion of macro 'ls0001_3' 4545 | ls0001_3.nq = nqm1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4546:5: note: in expansion of macro 'ls0001_3' 4546 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4546:18: note: in expansion of macro 'ls0001_3' 4546 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4552:7: note: in expansion of macro 'ls0001_3' 4552 | --ls0001_3.ialth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4553:9: note: in expansion of macro 'ls0001_3' 4553 | if (ls0001_3.ialth == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4556:9: note: in expansion of macro 'ls0001_3' 4556 | if (ls0001_3.ialth > 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4559:9: note: in expansion of macro 'ls0001_3' 4559 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4559:23: note: in expansion of macro 'ls0001_3' 4559 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4562:11: note: in expansion of macro 'ls0001_3' 4562 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4565:16: note: in expansion of macro 'ls0001_3' 4565 | yh[i + ls0001_3.lmax * yh_dim1] = acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4578:7: note: in expansion of macro 'ls0001_3' 4578 | --ls0001_3.kflag; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4579:5: note: in expansion of macro 'ls0001_3' 4579 | ls0001_3.tn = told; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4580:10: note: in expansion of macro 'ls0001_3' 4580 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4581:11: note: in expansion of macro 'ls0001_3' 4581 | i_1 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4585:15: note: in expansion of macro 'ls0001_3' 4585 | i_2 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4592:5: note: in expansion of macro 'ls0001_3' 4592 | ls0001_3.rmax = 2.; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:28: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4596:9: note: in expansion of macro 'ls0001_3' 4596 | if (ls0001_3.kflag <= -3) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4615:9: note: in expansion of macro 'ls0001_3' 4615 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4615:23: note: in expansion of macro 'ls0001_3' 4615 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4618:11: note: in expansion of macro 'ls0001_3' 4618 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4621:36: note: in expansion of macro 'ls0001_3' 4621 | savf[i] = acor[i] - yh[i + ls0001_3.lmax * yh_dim1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:20: note: in expansion of macro 'ls0001_3' 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:53: note: in expansion of macro 'ls0001_3' 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4624:13: note: in expansion of macro 'ls0001_3' 4624 | ls0001_3.nq * 3 - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4625:31: note: in expansion of macro 'ls0001_3' 4625 | exup = 1. / (doublereal) (ls0001_3.l + 1); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4628:30: note: in expansion of macro 'ls0001_3' 4628 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4631:9: note: in expansion of macro 'ls0001_3' 4631 | if (ls0001_3.nq == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:20: note: in expansion of macro 'ls0001_3' 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:36: note: in expansion of macro 'ls0001_3' 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4635:13: note: in expansion of macro 'ls0001_3' 4635 | ls0001_3.tesco[ls0001_3.nq * 3 - 3]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4635:28: note: in expansion of macro 'ls0001_3' 4635 | ls0001_3.tesco[ls0001_3.nq * 3 - 3]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4636:30: note: in expansion of macro 'ls0001_3' 4636 | exdn = 1. / (doublereal) ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4641:9: note: in expansion of macro 'ls0001_3' 4641 | if (ls0001_3.meth == 2) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4647:9: note: in expansion of macro 'ls0001_3' 4647 | if (ls0001_3.l < ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4647:22: note: in expansion of macro 'ls0001_3' 4647 | if (ls0001_3.l < ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4649:31: note: in expansion of macro 'ls0001_3' 4649 | d_1 = rhup, d_2 = sm1[ls0001_3.l - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4653:27: note: in expansion of macro 'ls0001_3' 4653 | d_1 = rhsm, d_2 = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4655:9: note: in expansion of macro 'ls0001_3' 4655 | if (ls0001_3.nq > 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4657:31: note: in expansion of macro 'ls0001_3' 4657 | d_1 = rhdn, d_2 = sm1[ls0001_3.nq - 2] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4673:12: note: in expansion of macro 'ls0001_3' 4673 | newq = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4677:12: note: in expansion of macro 'ls0001_3' 4677 | newq = ls0001_3.nq - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4679:9: note: in expansion of macro 'ls0001_3' 4679 | if (ls0001_3.kflag < 0 && rh > 1.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4684:12: note: in expansion of macro 'ls0001_3' 4684 | newq = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:9: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:21: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:52: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4690:11: note: in expansion of macro 'ls0001_3' 4690 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4697:5: note: in expansion of macro 'ls0001_3' 4697 | ls0001_3.ialth = 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4702:9: note: in expansion of macro 'ls0001_3' 4702 | if (ls0001_3.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4709:9: note: in expansion of macro 'ls0001_3' 4709 | if (ls0001_3.kflag == 0 && rh < 1.1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4713:9: note: in expansion of macro 'ls0001_3' 4713 | if (ls0001_3.kflag <= -2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4724:17: note: in expansion of macro 'ls0001_3' 4724 | if (newq == ls0001_3.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4728:5: note: in expansion of macro 'ls0001_3' 4728 | ls0001_3.nq = newq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4729:5: note: in expansion of macro 'ls0001_3' 4729 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4729:18: note: in expansion of macro 'ls0001_3' 4729 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4744:9: note: in expansion of macro 'ls0001_3' 4744 | if (ls0001_3.kflag == -10) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:11: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4751:5: note: in expansion of macro 'ls0001_3' 4751 | ls0001_3.h *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4752:11: note: in expansion of macro 'ls0001_3' 4752 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4757:20: note: in expansion of macro 'ls0001_3' 4757 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4758:7: note: in expansion of macro 'ls0001_3' 4758 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4759:11: note: in expansion of macro 'ls0001_3' 4759 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4762:34: note: in expansion of macro 'ls0001_3' 4762 | yh[i + (yh_dim1 << 1)] = ls0001_3.h * savf[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4764:5: note: in expansion of macro 'ls0001_3' 4764 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4764:21: note: in expansion of macro 'ls0001_3' 4764 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4765:5: note: in expansion of macro 'ls0001_3' 4765 | ls0001_3.ialth = 5; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4766:9: note: in expansion of macro 'ls0001_3' 4766 | if (ls0001_3.nq == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4769:5: note: in expansion of macro 'ls0001_3' 4769 | ls0001_3.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4770:5: note: in expansion of macro 'ls0001_3' 4770 | ls0001_3.l = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4780:5: note: in expansion of macro 'ls0001_3' 4780 | ls0001_3.kflag = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4783:5: note: in expansion of macro 'ls0001_3' 4783 | ls0001_3.kflag = -2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4786:5: note: in expansion of macro 'ls0001_3' 4786 | ls0001_3.kflag = -3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4789:5: note: in expansion of macro 'ls0001_3' 4789 | ls0001_3.rmax = 10.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4791:14: note: in expansion of macro 'ls0001_3' 4791 | r = 1. / ls0001_3.tesco[ls0001_3.nqu * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4791:29: note: in expansion of macro 'ls0001_3' 4791 | r = 1. / ls0001_3.tesco[ls0001_3.nqu * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4792:11: note: in expansion of macro 'ls0001_3' 4792 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4798:5: note: in expansion of macro 'ls0001_3' 4798 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4798:21: note: in expansion of macro 'ls0001_3' 4798 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4799:5: note: in expansion of macro 'ls0001_3' 4799 | ls0001_3.jstart = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'xerrwv_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:89:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 89 | #define eh0001_1 (*(struct eh0001_1_ *) &eh0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4964:9: note: in expansion of macro 'eh0001_1' 4964 | if (eh0001_1.mesflg == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:89:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 89 | #define eh0001_1 (*(struct eh0001_1_ *) &eh0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4969:11: note: in expansion of macro 'eh0001_1' 4969 | lun = eh0001_1.lunit; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'intdy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5463:24: note: in expansion of macro 'ls0001_2' 5463 | if (*k < 0 || *k > ls0001_2.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:10: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:24: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:38: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:64: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5467:13: note: in expansion of macro 'ls0001_2' 5467 | ls0001_2.hu); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5468:27: note: in expansion of macro 'ls0001_2' 5468 | if ((*t - tp) * (*t - ls0001_2.tn) > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5472:15: note: in expansion of macro 'ls0001_2' 5472 | s = (*t - ls0001_2.tn) / ls0001_2.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5472:30: note: in expansion of macro 'ls0001_2' 5472 | s = (*t - ls0001_2.tn) / ls0001_2.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5477:11: note: in expansion of macro 'ls0001_2' 5477 | jj1 = ls0001_2.l - *k; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5478:11: note: in expansion of macro 'ls0001_2' 5478 | i_1 = ls0001_2.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5485:11: note: in expansion of macro 'ls0001_2' 5485 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5488:29: note: in expansion of macro 'ls0001_2' 5488 | dky[i] = c * yh[i + ls0001_2.l * yh_dim1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5490:15: note: in expansion of macro 'ls0001_2' 5490 | if (*k == ls0001_2.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5493:11: note: in expansion of macro 'ls0001_2' 5493 | jb2 = ls0001_2.nq - *k; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5496:13: note: in expansion of macro 'ls0001_2' 5496 | j = ls0001_2.nq - jb; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5510:15: note: in expansion of macro 'ls0001_2' 5510 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5522:17: note: in expansion of macro 'ls0001_2' 5522 | r = pow_di(&ls0001_2.h, &i_1); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5523:11: note: in expansion of macro 'ls0001_2' 5523 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5540:13: note: in expansion of macro 'ls0001_2' 5540 | ls0001_2.tn, 0L); | ^~~~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:22:13: warning: 'RCSid' defined but not used [-Wunused-variable] 22 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'solsy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:15:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 15 | #define dgbsl_ csoda_dgbsl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:17:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 17 | #define dgesl_ csoda_dgesl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:17:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 17 | #define dgesl_ csoda_dgesl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'stoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4143 | ls0001_3.tn += ls0001_3.h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4143 | ls0001_3.tn += ls0001_3.h; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4156:13: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4156 | pnorm = vmnorm_(&ls0001_3.n, &yh1[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4218:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4218 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4246:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4246 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:15: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4466:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4466 | dm2 = vmnorm_(&ls0001_3.n, &yh[lm2p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4512:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4512 | dm1 = vmnorm_(&ls0001_3.n, &yh[lm1p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4751:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4751 | ls0001_3.h *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4120 | ls0001_3.h *= rh; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4120 | ls0001_3.h *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4121 | ls0001_3.rc *= rh; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4121 | ls0001_3.rc *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'prja_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3628:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3628 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3654 | ls0001_2.nfe += ls0001_2.n; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3654 | ls0001_2.nfe += ls0001_2.n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3712:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3712 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3756 | ls0001_2.nfe += mba; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3756 | ls0001_2.nfe += mba; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3760:23: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3760 | lsa001_2.pdnorm = bnorm_(&ls0001_2.n, &wm[3], &meband, &ml, &mu, &ewt[1]) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:14:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 14 | #define dgbfa_ csoda_dgbfa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:6: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3658:23: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3658 | lsa001_2.pdnorm = fnorm_(&ls0001_2.n, &wm[3], &ewt[1]) / abs(hl0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:16:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 16 | #define dgefa_ csoda_dgefa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:16:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 16 | #define dgefa_ csoda_dgefa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'intdy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'lsoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3382:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3382 | xerrwv_("lsoda-- istate = 3 and neq increased (i1 to i2) ", &c__50, & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3383 | c__5, &c__0, &c__2, &ls0001_1.n, &neq[1], &c__0, &c_b136, &c_b136, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3384 | 50L); | ~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2812 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:31: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3026 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3119:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3119 | xerrwv_(" at t = r1, tentative step size h = r2, step nst = i1 ", & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3120 | c__60, &c__107, &c__0, &c__1, &ls0001_1.nst, &c__0, &c__2, & | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3015 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gauss.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gauss.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/getmem.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/harmonic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gear.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/hyperbol.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/heun.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/lag.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/invert.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/legendre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/getmem.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/harmonic.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gear.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/hyperbol.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/heun.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/lag.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/invert.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/legendre.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/normrand.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/normrand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perpulse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perpulse.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perstep.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perstep.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisrand.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisrand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisson.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisson.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/pulse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/pulse.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/quad.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/quad.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ramp.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ramp.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revhyper.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revhyper.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsawto.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsawto.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsigmo.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsigmo.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/romberg.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/romberg.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/praxis.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/praxis.c:123:16: warning: 'c__10' defined but not used [-Wunused-variable] 123 | static integer c__10 = 10; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/runge.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/runge.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sawtooth.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sawtooth.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/schedule.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/schedule.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/seidel.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/seidel.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sigmoid.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sigmoid.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sigmoid.c,v 1.2 1997/08/30 14:32:20 hines Exp" ; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simeq.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simeq.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = "simeq.c,v 1.3 1999/01/04 12:46:51 hines Exp" ; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simplex.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simplex.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c: In function '_cvode_sparse': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:247:16: warning: unused variable 'j' [-Wunused-variable] 247 | int i, j, ierr; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:76:25: warning: 'spar_prmat' defined but not used [-Wunused-function] 76 | # define prmat spar_prmat | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:342:13: note: in expansion of macro 'prmat' 342 | static void prmat() | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sparse.c,v 1.7 1998/03/12 13:17:17 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/spline.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/spline.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'create_sparseobj': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:142:10: warning: unused variable 'j' [-Wunused-variable] 142 | int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function '_vector_sparse': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:287:7: warning: unused variable 'zero' [-Wunused-variable] 287 | int zero = 0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'initeqn': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:565:11: warning: unused variable 'val' [-Wunused-variable] 565 | double *val; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'vec_spar_getelm': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:626:13: warning: unused variable '_ix' [-Wunused-variable] 626 | int _ix = 0; | ^~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:41:25: warning: 'vec_spar_prmat' defined but not used [-Wunused-function] 41 | # define prmat vec_spar_prmat | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:532:13: note: in expansion of macro 'prmat' 532 | static void prmat() | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:126:15: warning: 'd' defined but not used [-Wunused-variable] 126 | static double d; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:14:13: warning: 'RCSid' defined but not used [-Wunused-variable] 14 | static char RCSid[] = "vsparse.c,v 1.5 1999/01/04 12:46:53 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/squarewa.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/squarewa.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c: In function '_ss_derivimplicit': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c:90:18: warning: unused variable 'i' [-Wunused-variable] 90 | int err, i; | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/step.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/step.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/threshol.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/threshol.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/tridiag.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/tridiag.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c: In function '_cvode_sparse_thread': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:225:16: warning: unused variable 'j' [-Wunused-variable] 225 | int i, j, ierr; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c: In function 'free_elm': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:368:19: warning: unused variable 'elnext' [-Wunused-variable] 368 | Elm *el, *elnext; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:368:14: warning: unused variable 'el' [-Wunused-variable] 368 | Elm *el, *elnext; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:305:13: warning: 'prmat' defined but not used [-Wunused-function] 305 | static void prmat(SparseObj* so) { | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sparse.c,v 1.7 1998/03/12 13:17:17 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c:2: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_struct.h:29:13: warning: 'nrn_buildjacobian_thread' declared 'static' but never defined [-Wunused-function] 29 | static void nrn_buildjacobian_thread(NewtonSpace* ns, | ^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c: In function '_ss_derivimplicit_thread': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c:53:18: warning: unused variable 'i' [-Wunused-variable] 53 | int err, i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:80:13: warning: 'Translate' declared 'static' but never defined [-Wunused-function] 80 | static void Translate(); | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:82:13: warning: 'ExpandTranslationArrays' declared 'static' but never defined [-Wunused-function] 82 | static void ExpandTranslationArrays(); | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c: In function 'spPrint': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:154:23: warning: variable 'pImagElements' set but not used [-Wunused-but-set-variable] 154 | ElementPtr pElement, pImagElements[PRINTER_WIDTH/10+1]; | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c: In function 'spFileVector': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:572:25: warning: unused variable 'Err' [-Wunused-variable] 572 | register int I, Size, Err; | ^~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c: In function 'spPartition': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:606:25: warning: variable 'DoCmplxDirect' set but not used [-Wunused-but-set-variable] 606 | BOOLEAN *DoRealDirect, *DoCmplxDirect; | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:77:12: warning: 'FactorComplexMatrix' declared 'static' but never defined [-Wunused-function] 77 | static int FactorComplexMatrix(); | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:67:13: warning: 'SolveComplexMatrix' declared 'static' but never defined [-Wunused-function] 67 | static void SolveComplexMatrix(); | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:68:13: warning: 'SolveComplexTransposedMatrix' declared 'static' but never defined [-Wunused-function] 68 | static void SolveComplexTransposedMatrix(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspalloc.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspalloc.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: In function 'spDeterminant': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:997:22: warning: unused variable 'cDeterminant' [-Wunused-variable] 997 | ComplexNumber Pivot, cDeterminant; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:997:15: warning: unused variable 'Pivot' [-Wunused-variable] 997 | ComplexNumber Pivot, cDeterminant; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:22: warning: unused variable 'ni' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:18: warning: unused variable 'nr' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:12: warning: unused variable 'Norm' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: In function 'spLargestElement': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:1982:15: warning: unused variable 'cPivot' [-Wunused-variable] 1982 | ComplexNumber cPivot; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:85:13: warning: 'ScaleComplexMatrix' declared 'static' but never defined [-Wunused-function] 85 | static void ScaleComplexMatrix(); | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:86:13: warning: 'ComplexMatrixMultiply' declared 'static' but never defined [-Wunused-function] 86 | static void ComplexMatrixMultiply(); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:87:13: warning: 'ComplexTransposedMatrixMultiply' declared 'static' but never defined [-Wunused-function] 87 | static void ComplexTransposedMatrixMultiply(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:88:19: warning: 'ComplexCondition' declared 'static' but never defined [-Wunused-function] 88 | static RealNumber ComplexCondition(); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspbuild.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspbuild.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspoutput.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspoutput.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c: In function 'SolveComplexMatrix': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:290:25: warning: unused variable 'ExtVector' [-Wunused-variable] 290 | register ComplexVector ExtVector; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c: In function 'SolveComplexTransposedMatrix': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:608:26: warning: unused variable 'ExtVector' [-Wunused-variable] 608 | register ComplexVector ExtVector; | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c:2: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspfactor.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspfactor.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvband.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvbandpre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvbbdpre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/csputils.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/csputils.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvdiag.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvdense.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c: In function 'CVodeF': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c:326:21: warning: variable 'istop' set but not used [-Wunused-but-set-variable] 326 | booleantype iret, istop; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c: In function 'CVBBDPrecReInitB': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c:1125:9: warning: variable 'cvode_mem' set but not used [-Wunused-but-set-variable] 1125 | void *cvode_mem; | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c: In function 'CVodeSetMinStep': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c:266:12: warning: variable 'hmax' set but not used [-Wunused-but-set-variable] 266 | realtype hmax; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvspgmr.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c: In function 'IDABand': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c:123:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 123 | int flag; | ^~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idabbdpre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVode': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:1371:18: warning: variable 'wrk2' set but not used [-Wunused-but-set-variable] 1371 | N_Vector wrk1, wrk2; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:1371:12: warning: variable 'wrk1' set but not used [-Wunused-but-set-variable] 1371 | N_Vector wrk1, wrk2; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVStgrNlsNewton': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:4693:15: warning: variable 'callSetup' set but not used [-Wunused-but-set-variable] 4693 | booleantype callSetup; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVStgr1NlsNewton': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:4966:15: warning: variable 'callSetup' set but not used [-Wunused-but-set-variable] 4966 | booleantype callSetup; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVsldet': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:5622:36: warning: variable 'rd3b' set but not used [-Wunused-but-set-variable] 5622 | realtype rd2a, rd2b, rd2c, rd3a, rd3b, cest1, corr1; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:5620:12: warning: variable 'small' set but not used [-Wunused-but-set-variable] 5620 | realtype small, tem, sqmax, saqk, qp, s, sqmaxk, saqj, sqmin; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c: In function 'IDADense': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c:115:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 115 | int flag; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c: In function 'IDAStopTest2': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c:1343:7: warning: variable 'ier' set but not used [-Wunused-but-set-variable] 1343 | int ier; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c: In function 'IDAnls': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c:1631:15: warning: variable 'ier' set but not used [-Wunused-but-set-variable] 1631 | int retval, ier; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c: In function 'IDASpgmr': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c:157:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 157 | int flag, maxl1; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/dense.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/band.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/iterative.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/smalldense.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_serial.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/spgmr.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/sundialsmath.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c: In function 'nrnmpi_subworld_size': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c:264:13: warning: unused variable 'nb' [-Wunused-variable] 264 | int nb = nw / n; /* nrnmpi_numprocs_bbs */ | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c:55:12: warning: 'nrnmpi_is_setup_' defined but not used [-Wunused-variable] 55 | static int nrnmpi_is_setup_; | ^~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_enddata': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:208:29: warning: variable 'oldsize' set but not used [-Wunused-but-set-variable] 208 | int p, type, isize, oldsize; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'pack': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:234:27: warning: variable 'oldsize' set but not used [-Wunused-but-set-variable] 234 | int dsize, isize, oldsize; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_bbssendrecv': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:354:20: warning: unused variable 'status' [-Wunused-variable] 354 | MPI_Status status; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:353:13: warning: unused variable 'msgtag' [-Wunused-variable] 353 | int msgtag; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_probe': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:380:13: warning: unused variable 'flag' [-Wunused-variable] 380 | int flag = 0; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnrt.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'nrnmpi_spike_exchange': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:96:26: warning: unused variable 'n1' [-Wunused-variable] 96 | int i, n, novfl, n1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:96:19: warning: unused variable 'novfl' [-Wunused-variable] 96 | int i, n, novfl, n1; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'MPI_Alltoallv_sparse.isra.0': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:301:12: warning: 'MPI_Waitall' accessing 1 byte in a region of size 0 [-Wstringop-overflow=] 301 | status = MPI_Waitall(n_requests, requests, MPI_STATUSES_IGNORE); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:301:12: note: referencing argument 3 of type 'struct MPI_Status *' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi_impl.h:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:19: /usr/include/mpich-x86_64/mpi.h:955:5: note: in a call to function 'MPI_Waitall' 955 | int MPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status array_of_statuses[]) MPICH_API_PUBLIC; | ^~~~~~~~~~~ In function 'make_spike_type', inlined from 'nrnmpi_spike_initialize' at /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:59:2: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:45:9: warning: 's' may be used uninitialized [-Wmaybe-uninitialized] 45 | MPI_Get_address(&s, &addresses[0]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi_impl.h:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:19: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'nrnmpi_spike_initialize': /usr/include/mpich-x86_64/mpi.h:1300:5: note: by argument 1 of type 'const void *' to 'MPI_Get_address' declared here 1300 | int MPI_Get_address(const void *location, MPI_Aint *address) MPICH_API_PUBLIC; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:34:22: note: 's' declared here 34 | NRNMPI_Spike s; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DNRNCMAKE -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp: In function 'wchar_t* mywstrdup(char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp:194:7: warning: unused variable 'count' [-Wunused-variable] 194 | int count = mbstowcs(ws, s, sz + 1); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp: In function 'void nrnpython_start(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp:241:22: warning: unused variable 'gilsav' [-Wunused-variable] 241 | PyGILState_STATE gilsav = PyGILState_Ensure(); | ^~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'void eval_component(PyHocObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:880:7: warning: unused variable 'j' [-Wunused-variable] 880 | int j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'PyObject* hocpickle_setstate(PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:2684:11: warning: comparison of integer expressions of different signedness: 'Py_ssize_t' {aka 'long int'} and 'long unsigned int' [-Wsign-compare] 2684 | if (len != size * sizeof(double)) { | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'PyObject* iternext_sl(PyHocObject*, hoc_Item*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:1733:1: warning: control reaches end of non-void function [-Wreturn-type] 1733 | } | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:2836:20: warning: 'hocobj_members' defined but not used [-Wunused-variable] 2836 | static PyMemberDef hocobj_members[] = {{NULL, 0, 0, 0, NULL}}; | ^~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'int NPySecObj_init(NPySecObj*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:274:15: warning: unused variable 'cell' [-Wunused-variable] 274 | PyObject* cell = 0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* NPySecObj_pt3dremove(NPySecObj*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:543:11: warning: unused variable 'n' [-Wunused-variable] 543 | int i0, n; | ^ In file included from /usr/include/python3.9/Python.h:145, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.h:24, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* NPySecObj_psection(NPySecObj*)': /usr/include/python3.9/ceval.h:24:66: warning: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations] 24 | PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:814:24: note: in expansion of macro 'PyEval_CallObject' 814 | PyObject* result = PyEval_CallObject(nrnpy_psection, arglist); | ^~~~~~~~~~~~~~~~~ /usr/include/python3.9/ceval.h:17:43: note: declared here 17 | Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* pyseg_richcmp(NPySegObj*, PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:983:13: warning: unused variable 'pysec' [-Wunused-variable] 983 | PyObject* pysec; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:984:8: warning: unused variable 'result' [-Wunused-variable] 984 | bool result = false; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* pysec_richcmp(NPySecObj*, PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:996:13: warning: unused variable 'pysec' [-Wunused-variable] 996 | PyObject* pysec; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:997:8: warning: unused variable 'result' [-Wunused-variable] 997 | bool result = false; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* var_of_mech_next(NPyVarOfMechIter*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1685:16: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1685 | if (self->i_ >= self->msym_->s_varn) { | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'int segment_setattro(NPySegObj*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1847:9: warning: unused variable 'nseg' [-Wunused-variable] 1847 | int nseg; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* nrnpy_nrn()': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2286:7: warning: unused variable 'i' [-Wunused-variable] 2286 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'void nrnpy_reg_mech(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2455:17: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 2455 | for (i = 0; i < mf->sym->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2461:6: warning: 'void nrnpy_unreg_mech(int)' defined but not used [-Wunused-function] 2461 | void nrnpy_unreg_mech(int type) { | ^~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'char* pickle(PyObject*, size_t*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:667:21: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 667 | for (int i = 0; i < *size; ++i) { | ~~^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'PyObject* py_broadcast(PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:834:7: warning: unused variable 'np' [-Wunused-variable] 834 | int np = nrnmpi_numprocs; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'Object* py_alltoall_type(int, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:986:25: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 986 | for (int j = 0; j < sz; ++j) { | ~~^~~~ In file included from /usr/include/python3.9/pytime.h:6, from /usr/include/python3.9/Python.h:85, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.h:24, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:7: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'hpoasgn': /usr/include/python3.9/object.h:422:25: warning: 'poright' may be used uninitialized in this function [-Wmaybe-uninitialized] 422 | if (--op->ob_refcnt != 0) { | ~~~~~~~~~~~~~~~~^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:324:13: note: 'poright' was declared here 324 | PyObject* poright; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'py_alltoall_type': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:1051:23: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized] 1051 | nrnmpi_char_scatterv(s, scnt, sdispl, r, rcnt[0], root); | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'int ECS_insert(int, PyHocObject*, int, int, int, double, double, double, double, double, double, PyHocObject*, PyHocObject*, int, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:173:9: warning: unused variable 'i' [-Wunused-variable] 173 | int i = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void ics_set_grid_concentrations(int, int, int64_t*, int64_t*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:419:13: warning: unused variable 'j' [-Wunused-variable] 419 | ssize_t j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:420:13: warning: unused variable 'num_nodes' [-Wunused-variable] 420 | ssize_t num_nodes; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:423:9: warning: unused variable 'total_surface_nodes' [-Wunused-variable] 423 | int total_surface_nodes = nodes_per_seg_start_indices[n]; //nodes_per_seg_lengths has length n + 1 since it has a 0 as the first start index | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void ics_set_grid_currents(int, int, int64_t*, int64_t*, PyObject*, double*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:446:16: warning: unused variable 'j' [-Wunused-variable] 446 | ssize_t i, j, num_nodes; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:446:19: warning: unused variable 'num_nodes' [-Wunused-variable] 446 | ssize_t i, j, num_nodes; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:448:9: warning: unused variable 'total_surface_nodes' [-Wunused-variable] 448 | int total_surface_nodes = nodes_per_seg_start_indices[n]; //nodes_per_seg_lengths has length n + 1 since it has a 0 as the first start index | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'int remove(Grid_node**, Grid_node*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:586:9: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 586 | delete temp; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:596:5: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 596 | delete delete_me; | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void empty_list(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:620:9: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 620 | delete old_head; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'int Grid_node::insert(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:646:16: warning: unused variable 'grid' [-Wunused-variable] 646 | Grid_node* grid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:648:16: warning: variable 'save' set but not used [-Wunused-but-set-variable] 648 | Grid_node *save; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'virtual void ECS_Grid_node::do_grid_currents(double*, double, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:727:21: warning: unused variable 'c' [-Wunused-variable] 727 | Current_Triple* c; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'virtual void ICS_Grid_node::scatter_grid_concentrations()': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:1402:13: warning: variable 'my_states' set but not used [-Wunused-but-set-variable] 1402 | double* my_states; | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'ReactGridData* create_threaded_reactions(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:256:30: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 256 | for(i = 0; i < react->region_size; i++) | ~~^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void* ecs_do_reactions(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:358:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 358 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:366:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 366 | for(k = 0; j < react->num_species_involved + react->num_params_involved; k++, j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:374:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 374 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:381:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 381 | for(k = 0; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:397:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 397 | for (j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:399:50: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 399 | for(k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:403:55: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 403 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:413:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 413 | for (j = 0; j < react->num_species_involved - 1; j ++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:415:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 415 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:418:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 418 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:430:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 430 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:439:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 439 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:511:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 511 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:517:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 517 | for(k = 0; j < react->num_species_involved + react->num_params_involved; k++, j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:523:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 523 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:530:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 530 | for(k = 0; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:546:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 546 | for (j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:548:50: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 548 | for(k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:552:55: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 552 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:562:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 562 | for (j = 0; j < react->num_species_involved - 1; j ++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:564:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 564 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' 1/src/nrnpython/rxd_extracellular.cpp:567:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 567 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:579:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 579 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:588:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 588 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void _rhs_variable_step_ecs(double, const double*, double*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:735:26: warning: unused variable 'orig_1d_states' [-Wunused-variable] 735 | double const * const orig_1d_states = states + _cvode_offset; | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:738:19: warning: unused variable 'orig_1d_ydot' [-Wunused-variable] 738 | double* const orig_1d_ydot = ydot + _cvode_offset; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void _rhs_variable_step_helper(Grid_node*, const double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:19: warning: unused variable 'bc_x' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:25: warning: unused variable 'bc_y' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:31: warning: unused variable 'bc_z' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:816:12: warning: unused variable 'bc' [-Wunused-variable] 816 | double bc; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:15:12: warning: 'int dg_adi(Grid_node*)' declared 'static' but never defined [-Wunused-function] 15 | static int dg_adi(Grid_node*); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function '_rhs_variable_step_helper(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:813:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 813 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'ics_ode_solve(double, double*, double const*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:993:16: warning: 'grid_size' may be used uninitialized in this function [-Wmaybe-uninitialized] 993 | RHS += grid_size; | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void rxd_include_node_flux1D(int, long int*, double*, PyObject**)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:331:9: warning: unused variable 'i' [-Wunused-variable] 331 | int i; | ^ In file included from /usr/include/python3.9/Python.h:145, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:11, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void apply_node_flux(int, long int*, double*, PyObject**, double, double*)': /usr/include/python3.9/ceval.h:24:66: warning: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations] 24 | PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:376:26: note: in expansion of macro 'PyEval_CallObject' 376 | result = PyEval_CallObject(source[i], NULL); | ^~~~~~~~~~~~~~~~~ /usr/include/python3.9/ceval.h:17:43: note: declared here 17 | Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void ode_solve(double, double, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:636:29: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 636 | for(i = 0, j = 0; i < num_states; i++) | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:638:18: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare] 638 | if(i == zvi[j]) | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:661:29: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 661 | for(i = 0, j = 0; i < num_states; i++) | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:663:18: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare] 663 | if(i == zvi[j]) | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void setup_currents(int, int, int*, int*, double*, PyHocObject**, int*, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:726:28: warning: variable 'idx' set but not used [-Wunused-but-set-variable] 726 | int i, j, k, id, side, idx; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void get_reaction_rates(ICSReactions*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1820:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1820 | if(react->vptrs != NULL) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1823:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1823 | react->reaction(states_for_reaction, params_for_reaction, result_array, mc_mult, ecs_states_for_reaction, ecs_params_for_reaction, ecs_result, flux, v); | ^~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1210:13: warning: 'void free_SpeciesIndexList()' defined but not used [-Wunused-function] 1210 | static void free_SpeciesIndexList() | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'solve_reaction(ICSReactions*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1910:13: warning: 'ecs_params_for_reaction' may be used uninitialized in this function [-Wmaybe-uninitialized] 1910 | double* ecs_params_for_reaction; | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2111:54: warning: 'ecs_result_dx' may be used uninitialized in this function [-Wmaybe-uninitialized] 2111 | pd = (ecs_result_dx[jac_i] - ecs_result[jac_i])/dx; | ~~~~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2111:74: warning: 'ecs_result' may be used uninitialized in this function [-Wmaybe-uninitialized] 2111 | pd = (ecs_result_dx[jac_i] - ecs_result[jac_i])/dx; | ~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2084:63: warning: 'ecs_states_for_reaction_dx' may be used uninitialized in this function [-Wmaybe-uninitialized] 2084 | ecs_states_for_reaction_dx[i] += dx; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1983:48: warning: 'ecs_states_for_reaction' may be used uninitialized in this function [-Wmaybe-uninitialized] 1983 | ecs_states_for_reaction[i] = cvode_states[react->ecs_index[segment][i]]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2008:24: warning: 'mc_mult' may be used uninitialized in this function [-Wmaybe-uninitialized] 2008 | mc_mult[i] = react->mc_multiplier[i][segment]; | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_find_deltas(long int, long int, long int, double*, long int*, long int*, double*, double, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:166:12: warning: unused variable 'dt' [-Wunused-variable] 166 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_find_deltas(long int, long int, long int, double*, long int*, long int*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:218:12: warning: unused variable 'dt' [-Wunused-variable] 218 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void* do_ics_deltas(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:267:12: warning: unused variable 'dt' [-Wunused-variable] 267 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_x_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:323:10: warning: unused variable 'N' [-Wunused-variable] 323 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_y_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:390:10: warning: unused variable 'N' [-Wunused-variable] 390 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_z_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:454:10: warning: unused variable 'N' [-Wunused-variable] 454 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_x(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:523:10: warning: unused variable 'N' [-Wunused-variable] 523 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_y(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:586:10: warning: unused variable 'N' [-Wunused-variable] 586 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_z(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:650:10: warning: unused variable 'N' [-Wunused-variable] 650 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void variable_step_delta(long int, long int, long int, double*, long int*, long int*, const double*, double, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:810:12: warning: variable 'prev_dc' set but not used [-Wunused-but-set-variable] 810 | double prev_dc, current_dc, next_dc; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:96:12: warning: 'int solve_dd_clhs_tridiag(int, double, double, double, double, double, double, double, double*, double*)' defined but not used [-Wunused-function] 96 | static int solve_dd_clhs_tridiag(const int N, const double l_diag, const double diag, | ^~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 97%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_marching_cubes.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 98%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_llgramarea.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:4: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp: In function '_rhs_variable_step_helper_tort(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:770:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 770 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp: In function '_rhs_variable_step_helper_vol(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:879:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 879 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 98%] Linking CXX shared library ../../lib/libnrniv.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv_lib.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicxx -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,libnrniv.so.0.0.0 -o ../../lib/libnrniv.so.0.0.0 CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o CMakeFiles/nrniv_lib.dir/bbs.cpp.o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o CMakeFiles/nrniv_lib.dir/classreg.cpp.o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o CMakeFiles/nrniv_lib.dir/datapath.cpp.o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o CMakeFiles/nrniv_lib.dir/kschan.cpp.o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o CMakeFiles/nrniv_lib.dir/linmod.cpp.o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o CMakeFiles/nrniv_lib.dir/netpar.cpp.o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o CMakeFiles/nrniv_lib.dir/occvode.cpp.o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o CMakeFiles/nrniv_lib.dir/partrans.cpp.o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o CMakeFiles/nrniv_lib.dir/savstate.cpp.o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o CMakeFiles/nrniv_lib.dir/shape.cpp.o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o CMakeFiles/nrniv_lib.dir/singlech.cpp.o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o CMakeFiles/nrniv_lib.dir/symdir.cpp.o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E cmake_symlink_library ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsdirectmpi.cpp:35:7: warning: type 'struct KeepArgs' violates the C++ One Definition Rule [-Wodr] 35 | class KeepArgs : public std::map{}; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:25:7: note: a type with different bases is defined in another translation unit 25 | class KeepArgs : public std::map{}; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: warning: type 'struct OcSparseMatrix' violates the C++ One Definition Rule [-Wodr] 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: a different type is defined in another translation unit 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: the first difference of corresponding definitions is field 'm_' 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: a field of same name but different type is defined in another translation unit 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: type 'struct SPMAT' should match type 'void' 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:185:9: warning: type 'union ' violates the C++ One Definition Rule [-Wodr] 185 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:38:11: note: a different type is defined in another translation unit 38 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:188:12: note: the first difference of corresponding definitions is field 'pstr_' 188 | char** pstr_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:41:15: note: a field with different name is defined in another translation unit 41 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: warning: type 'struct PyHocObject' violates the C++ One Definition Rule [-Wodr] 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:57:3: note: a different type is defined in another translation unit 57 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:184:25: note: the first difference of corresponding definitions is field 'ho_' 184 | PyObject_HEAD Object* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:37:11: note: a field of same name but different type is defined in another translation unit 37 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: note: type 'struct Object' should match type 'void' 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:13: warning: type of 's_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: return value type mismatch 174 | int s_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: 's_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:23: warning: type of 'do_fio' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: return value type mismatch 184 | int do_fio() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: 'do_fio' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:33: warning: type of 'e_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: return value type mismatch 189 | int e_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: 'e_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:230:14: warning: type of 'oc_restore_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 230 | void oc_restore_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: type mismatch in parameter 5 445 | void oc_restore_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: 'oc_restore_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:229:14: warning: type of 'oc_save_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 229 | void oc_save_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: type mismatch in parameter 5 428 | void oc_save_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: 'oc_save_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:285:13: warning: type of 'nrn_threads_create' does not match original declaration [-Wlto-type-mismatch] 285 | extern void nrn_threads_create(int); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type mismatch in parameter 2 488 | void nrn_threads_create(int n, int parallel) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type 'int' should match type 'void' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: 'nrn_threads_create' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1864:6: warning: type of 'nrnthread_get_trajectory_requests' does not match original declaration [-Wlto-type-mismatch] 1864 | void nrnthread_get_trajectory_requests(int tid, int& bsize, int& ntrajec, void**& vpr, int*& types, int*& indices, double**& pvars, double**& varrays); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: type mismatch in parameter 9 5561 | void nrnthread_get_trajectory_requests(int tid, int& bsize, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: 'nrnthread_get_trajectory_requests' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:33:20: warning: 'nrnmpi_multisplit' violates the C++ One Definition Rule [-Wodr] 33 | extern int nrnmpi_multisplit(Section*, double x, int sid, int backbonestyle); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: return value type mismatch 310 | void nrnmpi_multisplit(Section* sec, double x, int sid, int backbone_style) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: type 'void' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: 'nrnmpi_multisplit' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: 'at_time' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrncvode.h:20:13: warning: type of 'nrn_random_play' does not match original declaration [-Wlto-type-mismatch] 20 | extern void nrn_random_play(NrnThread*); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: type mismatch in parameter 1 583 | void nrn_random_play() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: 'nrn_random_play' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'MPI_Alltoallv_sparse.isra': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:301:12: warning: 'MPI_Waitall' accessing 1 byte in a region of size 0 [-Wstringop-overflow=] 301 | status = MPI_Waitall(n_requests, requests, MPI_STATUSES_IGNORE); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:301:12: note: referencing argument 3 of type 'struct MPI_Status *' /usr/include/mpich-x86_64/mpi.h:955:5: note: in a call to function 'MPI_Waitall' 955 | int MPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status array_of_statuses[]) MPICH_API_PUBLIC; | ^ /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp:51:41: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 51 | bucketCount = new int[howManyBuckets]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'mk_cellgroups', inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:648:40: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 648 | cgs[i].output_ps = new PreSyn*[npre]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'mk_cgs_netcon_info', inlined from 'mk_cellgroups' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:722:21, inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:558:44: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 558 | cgs[i].netcons = new NetCon*[nccnt[i]+1]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'gapsolve': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] 619 | cmplx_spSolve(m_, rb-1, rx1-1, jb-1, jx1-1); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 2 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 3 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 4 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 5 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:135:1: note: in a call to function 'cmplx_spSolve' 135 | spSolve( eMatrix, RHS, Solution IMAG_VECTORS ) | ^ In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '__fgets_alias' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^ /usr/include/bits/stdio2.h:251:14: note: in a call to function '__fgets_alias' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:110:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 110 | implementPool(TQItemPool, TQItem) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp:12:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 12 | implementPool(HocEventPool, HocEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: In function 'nrnmpi_setup_transfer': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:837:41: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 837 | outsrc_buf_ = new double[szalloc]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:838:39: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 838 | poutsrc_ = new double*[szalloc]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'nrnthread_dat2_3.part.0': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1385:24: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1385 | delays = new double[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:302:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 302 | implementStructPool(SectionPool, Section) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:152:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 152 | DoubleArrayPool** p1 = new DoubleArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:153:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 153 | DatumArrayPool** p2 = new DatumArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:449:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 449 | implementPool(SelfEventPool, SelfEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'init_global': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1773:71: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1773 | ml->nodelist = new Node*[ml->nodecount]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp: In member function 'rate': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp:74:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 74 | int* s = new int[size]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2434:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2434 | smap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2435:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2435 | rmap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'v_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3144:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 3144 | sid0i = new int[nback]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'exchange_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:603:48: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 603 | MultiSplit** vec2ms = new MultiSplit*[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1226:57: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1226 | m.nd_rt_index_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1227:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1227 | m.nd_rt_index_th_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:811:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 811 | int* rthost = new int[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:708:40: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 708 | int* connects2short = new int[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'settype': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1456:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1456 | Symbol** ligands = new Symbol*[nligand_+1]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'setstructure': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1895:47: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1895 | gc_ = new KSGateComplex[ngate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1899:50: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1899 | trans_ = new KSTransition[ntrans_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1903:45: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1903 | state_ = new KSState[nstate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: '__builtin_strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^ make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 98%] Built target nrniv_lib make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/depend /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/hoc_module.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/hoc_module.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/hoc_module.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/hoc_module.dir/depend.internal". Scanning dependencies of target hoc_module make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nrniv.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nrniv.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nrniv.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nrniv.dir/depend.internal". Scanning dependencies of target nrniv make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 98%] Generating inithoc.cpp cd /builddir/build/BUILD/nrn-7.8.1/src/nrnpython && cp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/inithoc.cpp /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/inithoc.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/constants.py /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/constants.py cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/demo /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/demo make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 98%] Built target hoc_module make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/testneuron.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/testneuron.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/testneuron.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/testneuron.dir/depend.internal". Scanning dependencies of target testneuron make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 98%] Building CXX object src/nrniv/CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++98 -o CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrnmain.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 98%] Building C object src/nrniv/CMakeFiles/nrniv.dir/__/oc/ockludge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ockludge.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Building C object src/nrniv/CMakeFiles/nrniv.dir/__/oc/modlreg.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/modlreg.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Linking CXX executable ../../bin/nrniv cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicxx -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -o ../../bin/nrniv ../../lib/libnrniv.so.0.0.0 -pthread -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Built target nrniv make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/rxdmod.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/rxdmod.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/rxdmod.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/rxdmod.dir/depend.internal". Scanning dependencies of target rxdmod make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/test/rxd && /usr/bin/cmake -E env NEURONHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn NRNHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich LD_LIBRARY_PATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib:/usr/lib64/mpich/lib PYTHONPATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib/python:/builddir/build/BUILD/nrn-7.8.1/test/rxd: /bin/bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nrnivmodl ./ecs /builddir/build/BUILD/nrn-7.8.1/test/rxd ./ecs/pump.mod pump.mod make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> NMODL pump.mod MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib \ /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl pump.mod make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> Compiling mod_func.c mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/include -fPIC -c mod_func.c -o mod_func.o make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> Compiling x86_64/pump.c (cd .. ; mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/include -fPIC -c x86_64/pump.c -o x86_64/pump.o) make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' => LINKING library x86_64/libnrnmech.so Mod files: pump.mod (cd .. ; mpicxx -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -shared -fPIC -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -I /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/include -o x86_64/libnrnmech.so -Wl,-soname,libnrnmech.so \ x86_64/mod_func.o x86_64/pump.o -L/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib -lnrniv -Wl,-rpath,/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib -lreadline -lcurses -lform -lpython3 -lX11 -lXext) (cd .. ; rm -f x86_64/.libs/libnrnmech.so ; mkdir -p x86_64/.libs ; ln -s ../../x86_64/libnrnmech.so x86_64/.libs/libnrnmech.so) make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' Successfully created x86_64/special make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' which: no xcrun in (/usr/lib64/mpich/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin) ls: cannot access './ecs/*.inc': No such file or directory make[3]: warning: -j4 forced in submake: resetting jobserver mode. Translating pump.mod into pump.c Thread Safe x86_64/pump.c:101:34: warning: missing braces around initializer [-Wmissing-braces] 101 | static VoidFunc hoc_intfunc[] = { | ^ 102 | "setdata_pump", _hoc_setdata, | { } 103 | 0, 0 | { 104 | }; | } x86_64/pump.c:114:44: warning: missing braces around initializer [-Wmissing-braces] 114 | static HocParmLimits _hoc_parm_limits[] = { | ^ 115 | 0,0,0 | { { 116 | }; | }} x86_64/pump.c:117:42: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmUnits _hoc_parm_units[] = { | ^ 118 | "imax_pump", "mA/cm2", | { } 119 | "Kd_pump", "mM", | { } 120 | "ix_pump", "mA/cm2", | { } 121 | "i_pump", "mA/cm2", | { } 122 | 0,0 | { 123 | }; | } x86_64/pump.c:125:33: warning: missing braces around initializer [-Wmissing-braces] 125 | static DoubScal hoc_scdoub[] = { | ^ 126 | "imax_pump", &imax_pump, | { } 127 | "Kd_pump", &Kd_pump, | { } 128 | 0,0 | { 129 | }; | } x86_64/pump.c:130:31: warning: missing braces around initializer [-Wmissing-braces] 130 | static DoubVec hoc_vdoub[] = { | ^ 131 | 0,0,0 | { 132 | }; | } x86_64/pump.c: In function '_pump_reg': x86_64/pump.c:182:13: warning: unused variable '_vectorized' [-Wunused-variable] 182 | int _vectorized = 1; | ^~~~~~~~~~~ x86_64/pump.c: In function 'initmodel': x86_64/pump.c:240:18: warning: unused variable '_save' [-Wunused-variable] 240 | int _i; double _save;{ | ^~~~~ x86_64/pump.c:240:7: warning: unused variable '_i' [-Wunused-variable] 240 | int _i; double _save;{ | ^~ x86_64/pump.c: In function '_nrn_jacob__pump': x86_64/pump.c:328:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ x86_64/pump.c:328:20: warning: unused variable '_ppvar' [-Wunused-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ x86_64/pump.c: In function '_initlists': x86_64/pump.c:359:6: warning: unused variable '_i' [-Wunused-variable] 359 | int _i; static int _first = 1; | ^~ x86_64/pump.c:358:21: warning: unused variable '_p' [-Wunused-variable] 358 | double _x; double* _p = &_x; | ^~ At top level: x86_64/pump.c:355:13: warning: 'terminal' defined but not used [-Wunused-function] 355 | static void terminal(){} | ^~~~~~~~ x86_64/pump.c:215:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 215 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ x86_64/pump.c:213:12: warning: '_ninits' defined but not used [-Wunused-variable] 213 | static int _ninits = 0; | ^~~~~~~ x86_64/pump.c:212:12: warning: 'error' defined but not used [-Wunused-variable] 212 | static int error; | ^~~~~ x86_64/pump.c:210:14: warning: 'modelname' defined but not used [-Wunused-variable] 210 | static char *modelname = ""; | ^~~~~~~~~ x86_64/pump.c:209:12: warning: '_reset' defined but not used [-Wunused-variable] 209 | static int _reset; | ^~~~~~ x86_64/pump.c:133:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 133 | static double _sav_indep; | ^~~~~~~~~~ make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Built target rxdmod make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Building CXX object test/CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/test -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/oc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/test/unit_tests/oc/hoc_interpreter.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 98%] Building CXX object test/CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/test -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/oc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -o CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/test/unit_tests/unit_test.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [100%] Linking CXX executable ../bin/test/testneuron cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/testneuron.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicxx -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -o ../bin/test/testneuron ../lib/libnrniv.so.0.0.0 -pthread -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [100%] Built target testneuron make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/CMakeFiles 0 make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' + . /etc/profile.d/modules.sh ++ . /etc/profile.d/00-modulepath.sh +++ '[' -z /etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ']' +++ : ++ '[' -z '' ']' ++ LMOD_ALLOW_ROOT_USE=yes ++ '[' -n '' ']' ++ '[' yes '!=' yes ']' ++ '[' -z /usr/share/modulefiles ']' ++ findExec PS_CMD /usr/bin/ps ps ++ Nm=PS_CMD ++ confPath=/usr/bin/ps ++ execNm=ps ++ eval PS_CMD=/usr/bin/ps +++ PS_CMD=/usr/bin/ps ++ '[' '!' -x /usr/bin/ps ']' ++ unset Nm confPath execNm ++ findExec EXPR_CMD /usr/bin/expr expr ++ Nm=EXPR_CMD ++ confPath=/usr/bin/expr ++ execNm=expr ++ eval EXPR_CMD=/usr/bin/expr +++ EXPR_CMD=/usr/bin/expr ++ '[' '!' -x /usr/bin/expr ']' ++ unset Nm confPath execNm ++ findExec BASENAME_CMD /usr/bin/basename basename ++ Nm=BASENAME_CMD ++ confPath=/usr/bin/basename ++ execNm=basename ++ eval BASENAME_CMD=/usr/bin/basename +++ BASENAME_CMD=/usr/bin/basename ++ '[' '!' -x /usr/bin/basename ']' ++ unset Nm confPath execNm ++ unset -f findExec +++ /usr/bin/ps -p 136 -ocomm= ++ my_shell=sh +++ /usr/bin/expr sh : '-*\(.*\)' ++ my_shell=sh +++ /usr/bin/basename sh ++ my_shell=sh ++ '[' -f /usr/share/lmod/lmod/init/sh ']' ++ . /usr/share/lmod/lmod/init/sh +++ LMOD_ROOT=/usr/share/lmod +++ LMOD_PKG=/usr/share/lmod/lmod +++ LMOD_DIR=/usr/share/lmod/lmod/libexec/ +++ LMOD_CMD=/usr/share/lmod/lmod/libexec/lmod +++ MODULESHOME=/usr/share/lmod/lmod +++ export LMOD_CMD +++ export LMOD_PKG +++ export LMOD_DIR +++ export MODULESHOME +++ export LMOD_DIR ++ unset my_shell PS_CMD EXPR_CMD BASENAME_CMD MODULEPATH_INIT LMOD_ALLOW_ROOT_USE + module unload mpi/mpich-x86_64 ++ /usr/share/lmod/lmod/libexec/lmod sh unload mpi/mpich-x86_64 + eval unset '__LMOD_REF_COUNT_LD_LIBRARY_PATH;' unset 'LD_LIBRARY_PATH;' unset '__LMOD_REF_COUNT_LOADEDMODULES;' unset 'LOADEDMODULES;' '__LMOD_REF_COUNT_MANPATH=/usr/share/lmod/lmod/share/man:1;' export '__LMOD_REF_COUNT_MANPATH;' 'MANPATH=/usr/share/lmod/lmod/share/man;' export 'MANPATH;' 'MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core;' export 'MODULEPATH;' unset 'MPI_BIN;' unset 'MPI_COMPILER;' unset 'MPI_FORTRAN_MOD_DIR;' unset 'MPI_HOME;' unset 'MPI_INCLUDE;' unset 'MPI_LIB;' unset 'MPI_MAN;' unset 'MPI_PYTHON2_SITEARCH;' unset 'MPI_PYTHON3_SITEARCH;' unset 'MPI_PYTHON_SITEARCH;' unset 'MPI_SUFFIX;' unset 'MPI_SYSCONFIG;' '__LMOD_REF_COUNT_PATH=/builddir/.local/bin:1\;/builddir/bin:1\;/usr/bin:1\;/bin:1\;/usr/sbin:1\;/sbin:1\;/usr/local/sbin:1;' export '__LMOD_REF_COUNT_PATH;' 'PATH=/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin;' export 'PATH;' '__LMOD_REF_COUNT_PKG_CONFIG_PATH=/usr/lib64/pkgconfig:1\;/usr/share/pkgconfig:1;' export '__LMOD_REF_COUNT_PKG_CONFIG_PATH;' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig;' export 'PKG_CONFIG_PATH;' unset '__LMOD_REF_COUNT__LMFILES_;' unset '_LMFILES_;' '_ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXt9LG1wYXRoQT17Ii9ldGMvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzIiwiL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eCIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvQ29yZSIsIi91c3Ivc2hhcmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0sWyJzeXN0ZW1CYXNlTVBBVEgiXT0iL2V0Yy9tb2R1bGVmaWxlczovdXNyL3NoYXJlL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvTGludXg6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9Db3JlOi91c3Ivc2hh;' export '_ModuleTable001_;' '_ModuleTable002_=cmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0=;' export '_ModuleTable002_;' '_ModuleTable_Sz_=2;' export '_ModuleTable_Sz_;' ++ unset __LMOD_REF_COUNT_LD_LIBRARY_PATH ++ unset LD_LIBRARY_PATH ++ unset __LMOD_REF_COUNT_LOADEDMODULES ++ unset LOADEDMODULES ++ __LMOD_REF_COUNT_MANPATH=/usr/share/lmod/lmod/share/man:1 ++ export __LMOD_REF_COUNT_MANPATH ++ MANPATH=/usr/share/lmod/lmod/share/man ++ export MANPATH ++ MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ++ export MODULEPATH ++ unset MPI_BIN ++ unset MPI_COMPILER ++ unset MPI_FORTRAN_MOD_DIR ++ unset MPI_HOME ++ unset MPI_INCLUDE ++ unset MPI_LIB ++ unset MPI_MAN ++ unset MPI_PYTHON2_SITEARCH ++ unset MPI_PYTHON3_SITEARCH ++ unset MPI_PYTHON_SITEARCH ++ unset MPI_SUFFIX ++ unset MPI_SYSCONFIG ++ __LMOD_REF_COUNT_PATH='/builddir/.local/bin:1;/builddir/bin:1;/usr/bin:1;/bin:1;/usr/sbin:1;/sbin:1;/usr/local/sbin:1' ++ export __LMOD_REF_COUNT_PATH ++ PATH=/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin ++ export PATH ++ __LMOD_REF_COUNT_PKG_CONFIG_PATH='/usr/lib64/pkgconfig:1;/usr/share/pkgconfig:1' ++ export __LMOD_REF_COUNT_PKG_CONFIG_PATH ++ PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig ++ export PKG_CONFIG_PATH ++ unset __LMOD_REF_COUNT__LMFILES_ ++ unset _LMFILES_ ++ _ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXt9LG1wYXRoQT17Ii9ldGMvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzIiwiL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eCIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvQ29yZSIsIi91c3Ivc2hhcmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0sWyJzeXN0ZW1CYXNlTVBBVEgiXT0iL2V0Yy9tb2R1bGVmaWxlczovdXNyL3NoYXJlL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvTGludXg6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9Db3JlOi91c3Ivc2hh ++ export _ModuleTable001_ ++ _ModuleTable002_=cmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0= ++ export _ModuleTable002_ ++ _ModuleTable_Sz_=2 ++ export _ModuleTable_Sz_ + . /etc/profile.d/modules.sh ++ . /etc/profile.d/00-modulepath.sh +++ '[' -z /etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ']' +++ : ++ '[' -z '' ']' ++ LMOD_ALLOW_ROOT_USE=yes ++ '[' -n '' ']' ++ '[' yes '!=' yes ']' ++ '[' -z /usr/share/modulefiles ']' ++ findExec PS_CMD /usr/bin/ps ps ++ Nm=PS_CMD ++ confPath=/usr/bin/ps ++ execNm=ps ++ eval PS_CMD=/usr/bin/ps +++ PS_CMD=/usr/bin/ps ++ '[' '!' -x /usr/bin/ps ']' ++ unset Nm confPath execNm ++ findExec EXPR_CMD /usr/bin/expr expr ++ Nm=EXPR_CMD ++ confPath=/usr/bin/expr ++ execNm=expr ++ eval EXPR_CMD=/usr/bin/expr +++ EXPR_CMD=/usr/bin/expr ++ '[' '!' -x /usr/bin/expr ']' ++ unset Nm confPath execNm ++ findExec BASENAME_CMD /usr/bin/basename basename ++ Nm=BASENAME_CMD ++ confPath=/usr/bin/basename ++ execNm=basename ++ eval BASENAME_CMD=/usr/bin/basename +++ BASENAME_CMD=/usr/bin/basename ++ '[' '!' -x /usr/bin/basename ']' ++ unset Nm confPath execNm ++ unset -f findExec +++ /usr/bin/ps -p 136 -ocomm= ++ my_shell=sh +++ /usr/bin/expr sh : '-*\(.*\)' ++ my_shell=sh +++ /usr/bin/basename sh ++ my_shell=sh ++ '[' -f /usr/share/lmod/lmod/init/sh ']' ++ . /usr/share/lmod/lmod/init/sh +++ LMOD_ROOT=/usr/share/lmod +++ LMOD_PKG=/usr/share/lmod/lmod +++ LMOD_DIR=/usr/share/lmod/lmod/libexec/ +++ LMOD_CMD=/usr/share/lmod/lmod/libexec/lmod +++ MODULESHOME=/usr/share/lmod/lmod +++ export LMOD_CMD +++ export LMOD_PKG +++ export LMOD_DIR +++ export MODULESHOME +++ export LMOD_DIR ++ unset my_shell PS_CMD EXPR_CMD BASENAME_CMD MODULEPATH_INIT LMOD_ALLOW_ROOT_USE + module load mpi/openmpi-x86_64 ++ /usr/share/lmod/lmod/libexec/lmod sh load mpi/openmpi-x86_64 + eval '__LMOD_REF_COUNT_LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:1;' export '__LMOD_REF_COUNT_LD_LIBRARY_PATH;' 'LD_LIBRARY_PATH=/usr/lib64/openmpi/lib;' export 'LD_LIBRARY_PATH;' '__LMOD_REF_COUNT_LOADEDMODULES=mpi/openmpi-x86_64:1;' export '__LMOD_REF_COUNT_LOADEDMODULES;' 'LOADEDMODULES=mpi/openmpi-x86_64;' export 'LOADEDMODULES;' '__LMOD_REF_COUNT_MANPATH=/usr/share/man/openmpi-x86_64:1\;/usr/share/lmod/lmod/share/man:1;' export '__LMOD_REF_COUNT_MANPATH;' 'MANPATH=:/usr/share/man/openmpi-x86_64:/usr/share/lmod/lmod/share/man;' export 'MANPATH;' 'MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core;' export 'MODULEPATH;' 'MPI_BIN=/usr/lib64/openmpi/bin;' export 'MPI_BIN;' 'MPI_COMPILER=openmpi-x86_64;' export 'MPI_COMPILER;' 'MPI_FORTRAN_MOD_DIR=/usr/lib64/gfortran/modules/openmpi;' export 'MPI_FORTRAN_MOD_DIR;' 'MPI_HOME=/usr/lib64/openmpi;' export 'MPI_HOME;' 'MPI_INCLUDE=/usr/include/openmpi-x86_64;' export 'MPI_INCLUDE;' 'MPI_LIB=/usr/lib64/openmpi/lib;' export 'MPI_LIB;' 'MPI_MAN=/usr/share/man/openmpi-x86_64;' export 'MPI_MAN;' 'MPI_PYTHON3_SITEARCH=/usr/lib64/python3.9/site-packages/openmpi;' export 'MPI_PYTHON3_SITEARCH;' 'MPI_SUFFIX=_openmpi;' export 'MPI_SUFFIX;' 'MPI_SYSCONFIG=/etc/openmpi-x86_64;' export 'MPI_SYSCONFIG;' '__LMOD_REF_COUNT_PATH=/usr/lib64/openmpi/bin:1\;/builddir/.local/bin:1\;/builddir/bin:1\;/usr/bin:1\;/bin:1\;/usr/sbin:1\;/sbin:1\;/usr/local/sbin:1;' export '__LMOD_REF_COUNT_PATH;' 'PATH=/usr/lib64/openmpi/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin;' export 'PATH;' '__LMOD_REF_COUNT_PKG_CONFIG_PATH=/usr/lib64/openmpi/lib/pkgconfig:1\;/usr/lib64/pkgconfig:1\;/usr/share/pkgconfig:1;' export '__LMOD_REF_COUNT_PKG_CONFIG_PATH;' 'PKG_CONFIG_PATH=/usr/lib64/openmpi/lib/pkgconfig::/usr/lib64/pkgconfig:/usr/share/pkgconfig;' export 'PKG_CONFIG_PATH;' '__LMOD_REF_COUNT__LMFILES_=/usr/share/modulefiles/mpi/openmpi-x86_64:1;' export '__LMOD_REF_COUNT__LMFILES_;' '_LMFILES_=/usr/share/modulefiles/mpi/openmpi-x86_64;' export '_LMFILES_;' '_ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXttcGk9e1siZm4iXT0iL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9tcGkvb3Blbm1waS14ODZfNjQiLFsiZnVsbE5hbWUiXT0ibXBpL29wZW5tcGkteDg2XzY0IixbImxvYWRPcmRlciJdPTEscHJvcFQ9e30sWyJzdGFja0RlcHRoIl09MCxbInN0YXR1cyJdPSJhY3RpdmUiLFsidXNlck5hbWUiXT0ibXBpL29wZW5tcGkteDg2XzY0Iix9LH0sbXBhdGhBPXsiL2V0Yy9tb2R1bGVmaWxlcyIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzL0xpbnV4IiwiL3Vzci9zaGFy;' export '_ModuleTable001_;' '_ModuleTable002_=ZS9tb2R1bGVmaWxlcy9Db3JlIiwiL3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfSxbInN5c3RlbUJhc2VNUEFUSCJdPSIvZXRjL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXM6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eDovdXNyL3NoYXJlL21vZHVsZWZpbGVzL0NvcmU6L3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfQ==;' export '_ModuleTable002_;' '_ModuleTable_Sz_=2;' export '_ModuleTable_Sz_;' *** BUILDING neuron-7.8.1-openmpi *** ++ __LMOD_REF_COUNT_LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:1 ++ export __LMOD_REF_COUNT_LD_LIBRARY_PATH ++ LD_LIBRARY_PATH=/usr/lib64/openmpi/lib ++ export LD_LIBRARY_PATH ++ __LMOD_REF_COUNT_LOADEDMODULES=mpi/openmpi-x86_64:1 ++ export __LMOD_REF_COUNT_LOADEDMODULES ++ LOADEDMODULES=mpi/openmpi-x86_64 ++ export LOADEDMODULES ++ __LMOD_REF_COUNT_MANPATH='/usr/share/man/openmpi-x86_64:1;/usr/share/lmod/lmod/share/man:1' ++ export __LMOD_REF_COUNT_MANPATH ++ MANPATH=:/usr/share/man/openmpi-x86_64:/usr/share/lmod/lmod/share/man ++ export MANPATH ++ MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ++ export MODULEPATH ++ MPI_BIN=/usr/lib64/openmpi/bin ++ export MPI_BIN ++ MPI_COMPILER=openmpi-x86_64 ++ export MPI_COMPILER ++ MPI_FORTRAN_MOD_DIR=/usr/lib64/gfortran/modules/openmpi ++ export MPI_FORTRAN_MOD_DIR ++ MPI_HOME=/usr/lib64/openmpi ++ export MPI_HOME ++ MPI_INCLUDE=/usr/include/openmpi-x86_64 ++ export MPI_INCLUDE ++ MPI_LIB=/usr/lib64/openmpi/lib ++ export MPI_LIB ++ MPI_MAN=/usr/share/man/openmpi-x86_64 ++ export MPI_MAN ++ MPI_PYTHON3_SITEARCH=/usr/lib64/python3.9/site-packages/openmpi ++ export MPI_PYTHON3_SITEARCH ++ MPI_SUFFIX=_openmpi ++ export MPI_SUFFIX ++ MPI_SYSCONFIG=/etc/openmpi-x86_64 ++ export MPI_SYSCONFIG ++ __LMOD_REF_COUNT_PATH='/usr/lib64/openmpi/bin:1;/builddir/.local/bin:1;/builddir/bin:1;/usr/bin:1;/bin:1;/usr/sbin:1;/sbin:1;/usr/local/sbin:1' ++ export __LMOD_REF_COUNT_PATH ++ PATH=/usr/lib64/openmpi/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin ++ export PATH ++ __LMOD_REF_COUNT_PKG_CONFIG_PATH='/usr/lib64/openmpi/lib/pkgconfig:1;/usr/lib64/pkgconfig:1;/usr/share/pkgconfig:1' ++ export __LMOD_REF_COUNT_PKG_CONFIG_PATH ++ PKG_CONFIG_PATH=/usr/lib64/openmpi/lib/pkgconfig::/usr/lib64/pkgconfig:/usr/share/pkgconfig ++ export PKG_CONFIG_PATH ++ __LMOD_REF_COUNT__LMFILES_=/usr/share/modulefiles/mpi/openmpi-x86_64:1 ++ export __LMOD_REF_COUNT__LMFILES_ ++ _LMFILES_=/usr/share/modulefiles/mpi/openmpi-x86_64 ++ export _LMFILES_ ++ _ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXttcGk9e1siZm4iXT0iL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9tcGkvb3Blbm1waS14ODZfNjQiLFsiZnVsbE5hbWUiXT0ibXBpL29wZW5tcGkteDg2XzY0IixbImxvYWRPcmRlciJdPTEscHJvcFQ9e30sWyJzdGFja0RlcHRoIl09MCxbInN0YXR1cyJdPSJhY3RpdmUiLFsidXNlck5hbWUiXT0ibXBpL29wZW5tcGkteDg2XzY0Iix9LH0sbXBhdGhBPXsiL2V0Yy9tb2R1bGVmaWxlcyIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzL0xpbnV4IiwiL3Vzci9zaGFy ++ export _ModuleTable001_ ++ _ModuleTable002_=ZS9tb2R1bGVmaWxlcy9Db3JlIiwiL3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfSxbInN5c3RlbUJhc2VNUEFUSCJdPSIvZXRjL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXM6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eDovdXNyL3NoYXJlL21vZHVsZWZpbGVzL0NvcmU6L3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfQ== ++ export _ModuleTable002_ ++ _ModuleTable_Sz_=2 ++ export _ModuleTable_Sz_ + export OMPI_MCA_rmaps_base_oversubscribe=1 + OMPI_MCA_rmaps_base_oversubscribe=1 + export CC=mpicc + CC=mpicc + export CXX=mpicxx + CXX=mpicxx + export FC=mpif90 + FC=mpif90 + export F77=mpif77 + F77=mpif77 + export MPI_YES=ON + MPI_YES=ON + export MPI_COMPILE_TYPE=-openmpi + MPI_COMPILE_TYPE=-openmpi + export MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu-openmpi + MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu-openmpi + export MPI_LIBFILE=/usr/lib64/openmpi/lib/libmpi.so + MPI_LIBFILE=/usr/lib64/openmpi/lib/libmpi.so + echo + echo '*** BUILDING neuron-7.8.1-openmpi ***' + echo + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/lib64/gfortran/modules' + export FCFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib64: + export LT_SYS_LIBRARY_PATH + CC=mpicc + export CC + CXX=mpicxx + export CXX + cmake -DCMAKE_C_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_CXX_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_Fortran_FLAGS_RELEASE:STRING=-DNDEBUG -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_INSTALL_INCLUDEDIR:PATH=/usr/include/openmpi-x86_64 -DCMAKE_INSTALL_LIBDIR:PATH=/usr/lib64/openmpi/lib -DSYSCONF_INSTALL_DIR:PATH=/etc -DSHARE_INSTALL_PREFIX:PATH=/usr/share -DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr/lib64/openmpi -DBUILD_SHARED_LIBS:BOOL=ON -DNRN_ENABLE_SHARED=ON -DNRN_ENABLE_INTERVIEWS=ON -DNRN_ENABLE_PYTHON=ON -DNRN_ENABLE_PYTHON_DYNAMIC=OFF -DNRN_ENABLE_THREADS=ON -DNRN_ENABLE_MEMACS=ON -DNRN_ENABLE_RX3D=ON -DNRN_ENABLE_CORENEURON=OFF -DNRN_ENABLE_TESTS=ON -DNRN_ENABLE_REL_RPATH=ON -DNRN_ENABLE_MODULE_INSTALL=ON -DNRN_ENABLE_INTERNAL_READLINE=OFF -DNRN_ENABLE_MPI=ON -DMPI_INCLUDE_PATH=/usr/include/openmpi-x86_64 -DMPI_LIBRARY=/usr/lib64/openmpi/lib/libmpi.so -DLIB_SUFFIX=64 -B x86_64-redhat-linux-gnu-openmpi -- The C compiler identification is GNU 11.0.0 -- The CXX compiler identification is GNU 11.0.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/lib64/openmpi/bin/mpicc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/lib64/openmpi/bin/mpicxx - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Using relative RPATHs -- Setting build type to 'RelWithDebInfo' as none was specified. -- Found BISON: /usr/bin/bison (found version "3.7.4") -- Found FLEX: /usr/bin/flex (found version "2.6.4") -- Found Readline: /usr/include -- Found PythonInterp: /usr/bin/python3.9 (found version "3.9.1") -- Found Cython: /usr/bin/cython (found version "0.29.21") -- Found MPI_C: /usr/lib64/openmpi/bin/mpicc (found version "3.1") -- Found MPI_CXX: /usr/lib64/openmpi/bin/mpicxx (found version "3.1") -- Found MPI: TRUE (found version "3.1") -- Using external Interviews from -- Found PythonInterp: /usr/bin/python3.9 (found suitable version "3.9.1", minimum required is "3") -- Found PythonLibs: /usr/lib64/libpython3.9.so -- Found Threads: TRUE -- Found pytest: /usr/lib/python3.9/site-packages/pytest (found version "6.0.2") -- Found mpi4py: /usr/lib64/python3.9/site-packages/openmpi/mpi4py (found version "3.0.3") -- -- Configured NEURON 7.8 -- -- Some things you can do now: -- --------------+-------------------------------------------------------------- -- Command | Description -- --------------+-------------------------------------------------------------- -- make install | Will install NEURON to: /usr/lib64/openmpi -- | Change the install location of NEURON using: -- | cmake -DCMAKE_INSTALL_PREFIX= -- make docs | Build the API documentation -- make uninstall| Removes files installed by make install (todo) -- --------------+-------------------------------------------------------------- -- Build option | Status -- --------------+-------------------------------------------------------------- -- BUILD_TYPE | RelWithDebInfo (allowed: Custom;Debug;Release;RelWithDebInfo;Fast) -- COMPILE FLAGS | -- Shared | ON -- Binary special| OFF -- Legacy FR | ON -- MPI | ON -- INC | /usr/include/openmpi-x86_64 -- LIB | MPI_LIBRARY-NOTFOUND -- DYNAMIC | OFF -- Python | ON -- EXE | /usr/bin/python3.9 -- INC | /usr/include/python3.9 -- LIB | /usr/lib64/libpython3.9.so -- MODULE | ON -- DYNAMIC | OFF -- Readline | /usr/lib64/libreadline.so -- Curses | /usr/lib64/libcurses.so;/usr/lib64/libform.so -- RX3D | ON -- OptLevel | 0 -- Interviews | ON -- PATH | -- INC | /usr/include -- X11 (INC) | /usr/include -- CoreNEURON | OFF -- --------------+-------------------------------------------------------------- -- See documentation : https://www.neuron.yale.edu/neuron/ -- --------------+-------------------------------------------------------------- -- -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project: CMAKE_Fortran_FLAGS_RELEASE LIB_SUFFIX SHARE_INSTALL_PREFIX SYSCONF_INSTALL_DIR -- Build files have been written to: /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi + /usr/bin/make -O -j2 V=1 VERBOSE=1 -C x86_64-redhat-linux-gnu-openmpi make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/cmake -S/builddir/build/BUILD/nrn-7.8.1 -B/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi --check-build-system CMakeFiles/Makefile.cmake 0 make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/CMakeFiles /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi//CMakeFiles/progress.marks make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f CMakeFiles/Makefile2 all /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/depend /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/CMakeFiles/hh_update.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/CMakeFiles/hh_update.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/CMakeFiles/hh_update.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/CMakeFiles/hh_update.dir/depend.internal". Scanning dependencies of target hh_update make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nocmodl.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nocmodl.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nocmodl.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nocmodl.dir/depend.internal". Scanning dependencies of target nocmodl make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 0%] Update hh.mod for CoreNEURON compatibility sed "s/ RANGE minf/ GLOBAL minf/" /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.1 sed "s/ :TABLE minf/ TABLE minf/" /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.1 > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.2 /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.2 /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod /usr/bin/cmake -E remove /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.2 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 0%] Built target hh_update make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/modlunit.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/modlunit.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/modlunit.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/modlunit.dir/depend.internal". Scanning dependencies of target modlunit make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 1%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y: In function 'yyparse': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y:292:51: warning: unused variable 'd' [-Wunused-variable] 292 | {P1{Item *q; double d, unit_mag(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y:292:41: warning: unused variable 'q' [-Wunused-variable] 292 | {P1{Item *q; double d, unit_mag(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 0%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y: In function 'yyparse': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y:1127:48: warning: unused variable 'd' [-Wunused-variable] 1127 | {Item *q; double d, unit_mag(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y:1127:38: warning: unused variable 'q' [-Wunused-variable] 1127 | {Item *q; double d, unit_mag(); | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 1%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/lex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/lex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c:1471:16: warning: 'input' defined but not used [-Wunused-function] 1471 | #else | ^ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c:1428:17: warning: 'yyunput' defined but not used [-Wunused-function] 1428 | | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/diffeq.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 2%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/consist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/consist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/consist.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 2%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/declare.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/declare.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/declare.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 2%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:18:30: warning: missing braces around initializer [-Wmissing-braces] 18 | } keywords[] = { | ^ 19 | "VERBATIM", VERBATIM, | { } 20 | "ENDVERBATIM", END_VERBATIM, /* explicit in lex.l */ | { } 21 | "COMMENT", COMMENT, | { } 22 | "ENDCOMMENT", END_COMMENT, /* explicit in lex.l */ | { } 23 | "TITLE", TITLE, | { } 24 | "CONSTANT", CONSTANT, | { } 25 | "PARAMETER", PARAMETER, | { } 26 | "INDEPENDENT", INDEPENDENT, | { } 27 | "ASSIGNED", ASSIGNED, | { } 28 | "INITIAL", INITIAL1, | { } 29 | "TERMINAL", TERMINAL, | { } 30 | "DERIVATIVE", DERIVATIVE, | { } 31 | "EQUATION", EQUATION, | { } 32 | "BREAKPOINT", BREAKPOINT, | { } 33 | "CONDUCTANCE", CONDUCTANCE, | { } 34 | "SOLVE", SOLVE, | { } 35 | "STATE", STATE, | { } 36 | "STEPPED", STEPPED, | { } 37 | "LINEAR", LINEAR, | { } 38 | "NONLINEAR", NONLINEAR, | { } 39 | "DISCRETE", DISCRETE, | { } 40 | "FUNCTION", FUNCTION1, | { } 41 | "FUNCTION_TABLE", FUNCTION_TABLE, | { } 42 | "PROCEDURE", PROCEDURE, | { } 43 | "PARTIAL", PARTIAL, | { } 44 | "INT", INT, | { } 45 | "DEL2", DEL2, | { } 46 | "DEL", DEL, | { } 47 | "LOCAL", LOCAL, | { } 48 | "METHOD", USING, | { } 49 | "STEADYSTATE", USING, | { } 50 | "SENS", SENS, | { } 51 | "STEP", STEP, | { } 52 | "WITH", WITH, | { } 53 | "FROM", FROM, | { } 54 | "TO", TO, | { } 55 | "BY", BY, | { } 56 | "if", IF, | { } 57 | "else", ELSE, | { } 58 | "while", WHILE, | { } 59 | "IF", IF, | { } 60 | "ELSE", ELSE, | { } 61 | "WHILE", WHILE, | { } 62 | "START", START1, | { } 63 | "DEFINE", DEFINE1, | { } 64 | 65 | "KINETIC", KINETIC, | { } 66 | "CONSERVE", CONSERVE, | { } 67 | "PLOT", PLOT, | { } 68 | "VS", VS, | { } 69 | "LAG", LAG, | { } 70 | "RESET", RESET, | { } 71 | "MATCH", MATCH, | { } 72 | "MODEL_LEVEL", MODEL_LEVEL, /* inserted by merge */ | { } 73 | "SWEEP", SWEEP, | { } 74 | "FIRST", FIRST, | { } 75 | "LAST", LAST, | { } 76 | "COMPARTMENT", COMPARTMENT, | { } 77 | "LONGITUDINAL_DIFFUSION", LONGDIFUS, | { } 78 | "PUTQ", PUTQ, | { } 79 | "GETQ", GETQ, | { } 80 | "IFERROR", IFERROR, | { } 81 | "SOLVEFOR", SOLVEFOR, | { } 82 | "UNITS", UNITBLK, | { } 83 | "UNITSON", UNITSON, | { } 84 | "UNITSOFF", UNITSOFF, | { } 85 | "TABLE", TABLE, | { } 86 | "DEPEND", DEPEND, | { } 87 | "NEURON", NEURON, | { } 88 | "SUFFIX", SUFFIX, | { } 89 | "POINT_PROCESS", SUFFIX, | { } 90 | "ARTIFICIAL_CELL", SUFFIX, | { } 91 | "NONSPECIFIC_CURRENT", NONSPECIFIC, | { } 92 | "ELECTRODE_CURRENT", ELECTRODE_CURRENT, | { } 93 | "USEION", USEION, | { } 94 | "READ", READ, | { } 95 | "WRITE", WRITE, | { } 96 | "RANGE", RANGE, | make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' { } 97 | "SECTION", SECTION, | { } 98 | "VALENCE", VALENCE, | { } 99 | "GLOBAL", GLOBAL, | { } 100 | "POINTER", POINTER, | { } 101 | "BBCOREPOINTER", POINTER, | { } 102 | "EXTERNAL", EXTERNAL, | { } 103 | "INCLUDE", INCLUDE1, | { } 104 | "CONSTRUCTOR", CONSTRUCTOR, | { } 105 | "DESTRUCTOR", DESTRUCTOR, | { } 106 | "NET_RECEIVE", NETRECEIVE, | { } 107 | "BEFORE", BEFORE, /* before NEURON sets up cy' = f(y,t) */ | { } 108 | "AFTER", AFTER, /* after NEURON solves cy' = f(y, t) */ | { } 109 | "WATCH", WATCH, | { } 110 | "FOR_NETCONS", FOR_NETCONS, | { } 111 | "THREADSAFE", THREADSAFE, | { } 112 | "PROTECT", PROTECT, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:124:29: warning: missing braces around initializer [-Wmissing-braces] 124 | } special[] = { | ^ 125 | ";", SEMI, &semi, | { } 126 | "{", BEGINBLK, &beginblk, | { } 127 | "}", ENDBLK, &endblk, | { } 128 | 0, 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:135:29: warning: missing braces around initializer [-Wmissing-braces] 135 | } methods[] = { | ^ 136 | "adams", DERF | KINF, 0, | { } 137 | "runge", DERF | KINF, 0, | { } 138 | "euler", DERF | KINF, 0, | { } 139 | "adeuler", DERF | KINF, 1, | { } 140 | "heun", DERF | KINF, 0, | { } 141 | "adrunge", DERF | KINF, 1, | { } 142 | "newton", NLINF, 0, | { } 143 | "simplex", NLINF, 0, | { } 144 | "simeq", LINF, 0, | { } 145 | "seidel", LINF, 0, | { } 146 | "_advance", KINF, 0, | { } 147 | "sparse", KINF, 0, | { } 148 | "derivimplicit", DERF, 0, /* name hard wired in deriv.c */ | { } 149 | "cnexp", DERF, 0, | { } 150 | "clsoda", DERF | KINF, 0, /* Tolerance built in to | { } 151 | scopgear.c */ 152 | "after_cvode", 0, 0, | { } 153 | "cvode_t", 0, 0, | { } 154 | "cvode_t_v", 0, 0, | { } 155 | 0, 0, 0 | { 156 | }; | } make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c:1433:17: warning: 'yyunput' defined but not used [-Wunused-function] 1433 | | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/io.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/io.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/io.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/consist.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/kinunit.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/list.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c: In function 'massagederiv': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c:432:40: warning: unused variable 'solve_seen' [-Wunused-variable] 432 | int count = 0, deriv_implicit, solve_seen; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/model.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/model.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c: In function 'openfiles': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c:145:36: warning: '%s' directive writing up to 8191 bytes into a region of size 8187 [-Wformat-overflow=] 145 | sprintf(modprefix, "%s", argv[1]); | ^~~~ In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:3, from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c:27: /usr/include/bits/stdio2.h:38:10: note: '__sprintf_chk' output between 1 and 8192 bytes into a destination of size 8187 38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/discrete.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 3%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/nrnunit.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:16:30: warning: missing braces around initializer [-Wmissing-braces] 16 | } keywords[] = { | ^ 17 | "VERBATIM", VERBATIM, | { } 18 | "COMMENT", COMMENT, | { } 19 | "TITLE", MODEL, | { } 20 | "CONSTANT", CONSTANT, | { } 21 | "PARAMETER", PARAMETER, | { } 22 | "INDEPENDENT", INDEPENDENT, | { } 23 | "ASSIGNED", DEPENDENT, | { } 24 | "INITIAL", INITIAL1, | { } 25 | "TERMINAL", TERMINAL, | { } 26 | "DERIVATIVE", DERIVATIVE, | { } 27 | "EQUATION", EQUATION, | { } 28 | "BREAKPOINT", BREAKPOINT, | { } 29 | "CONDUCTANCE", CONDUCTANCE, | { } 30 | "SOLVE", SOLVE, | { } 31 | "STATE", STATE, | { } 32 | "STEPPED", STEPPED, | { } 33 | "LINEAR", LINEAR, | { } 34 | "NONLINEAR", NONLINEAR, | { } 35 | "DISCRETE", DISCRETE, | { } 36 | "FUNCTION", FUNCTION1, | { } 37 | "FUNCTION_TABLE", FUNCTION_TABLE, | { } 38 | "PROCEDURE", PROCEDURE, | { } 39 | "PARTIAL", PARTIAL, | { } 40 | "INT", INT, | { } 41 | "DEL2", DEL2, | { } 42 | "DEL", DEL, | { } 43 | "LOCAL", LOCAL, | { } 44 | "METHOD", USING, | { } 45 | "STEADYSTATE", USING, | { } 46 | "SENS", SENS, | { } 47 | "STEP", STEP, | { } 48 | "WITH", WITH, | { } 49 | "FROM", FROM, | { } 50 | "FORALL", FORALL1, | { } 51 | "TO", TO, | { } 52 | "BY", BY, | { } 53 | "if", IF, | { } 54 | "else", ELSE, | { } 55 | "while", WHILE, | { } 56 | "START", START1, | { } 57 | "DEFINE", DEFINE1, | { } 58 | 59 | "KINETIC", KINETIC, | { } 60 | "CONSERVE", CONSERVE, | { } 61 | "PLOT", PLOT, | { } 62 | "VS", VS, | { } 63 | "LAG", LAG, | { } 64 | "RESET", RESET, | { } 65 | "MATCH", MATCH, | { } 66 | "MODEL_LEVEL", MODEL_LEVEL, /* inserted by merge */ | { } 67 | "SWEEP", SWEEP, | { } 68 | "FIRST", FIRST, | { } 69 | "LAST", LAST, | { } 70 | "COMPARTMENT", COMPARTMENT, | { } 71 | "LONGITUDINAL_DIFFUSION", LONGDIFUS, | { } 72 | "PUTQ", PUTQ, | { } 73 | "GETQ", GETQ, | { } 74 | "IFERROR", IFERROR, | { } 75 | "SOLVEFOR", SOLVEFOR, | { } 76 | "UNITS", UNITS, | { } 77 | "UNITSON", UNITSON, | { } 78 | "UNITSOFF", UNITSOFF, | { } 79 | "TABLE", TABLE, | { } 80 | "DEPEND", DEPEND, | { } 81 | "NEURON", NEURON, | { } 82 | "SUFFIX", SUFFIX, | { } 83 | "POINT_PROCESS", SUFFIX, | { } 84 | "ARTIFICIAL_CELL", SUFFIX, | { } 85 | "NONSPECIFIC_CURRENT", NONSPECIFIC, | { } 86 | "ELECTRODE_CURRENT", ELECTRODE_CURRENT, | { } 87 | "SECTION", SECTION, | { } 88 | "RANGE", RANGE, | { } 89 | "USEION", USEION, | { } 90 | "READ", READ, | { } 91 | "WRITE", WRITE, | { } 92 | "VALENCE", VALENCE, | { } 93 | "CHARGE", VALENCE, | { } 94 | "GLOBAL", GLOBAL, | { } 95 | "POINTER", POINTER, | { } 96 | "BBCOREPOINTER", BBCOREPOINTER, | { } 97 | "EXTERNAL", EXTERNAL, | { } 98 | "INCLUDE", INCLUDE1, | { } 99 | "CONSTRUCTOR", CONSTRUCTOR, | { } 100 | "DESTRUCTOR", DESTRUCTOR, | { } 101 | "NET_RECEIVE", NETRECEIVE, | { } 102 | "BEFORE", BEFORE, /* before NEURON sets up cy' = f(y,t) */ | { } 103 | "AFTER", AFTER, /* after NEURON solves cy' = f(y, t) */ | { } 104 | "WATCH", WATCH, | { } 105 | "FOR_NETCONS", FOR_NETCONS, | { } 106 | "THREADSAFE", THREADSAFE, | { } 107 | "PROTECT", PROTECT, | { } 108 | "MUTEXLOCK", NRNMUTEXLOCK, | { } 109 | "MUTEXUNLOCK", NRNMUTEXUNLOCK, | { } 110 | "REPRESENTS", REPRESENTS, | { } 111 | 0, 0 | { 112 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:122:29: warning: missing braces around initializer [-Wmissing-braces] 122 | } special[] = { | ^ 123 | ";", SEMI, &semi, | { } 124 | "{", BEGINBLK, &beginblk, | { } 125 | "}", ENDBLK, &endblk, | { } 126 | 0, 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:133:29: warning: missing braces around initializer [-Wmissing-braces] 133 | } methods[] = { | ^ 134 | "adams", DERF | KINF, 0, | { } 135 | "runge", DERF | KINF, 0, | { } 136 | "euler", DERF | KINF, 0, | { } 137 | "adeuler", DERF | KINF, 1, | { } 138 | "heun", DERF | KINF, 0, | { } 139 | "adrunge", DERF | KINF, 1, | { } 140 | "gear", DERF | KINF, 1, | { } 141 | "newton", NLINF, 0, | { } 142 | "simplex", NLINF, 0, | { } 143 | "simeq", LINF, 0, | { } 144 | "seidel", LINF, 0, | { } 145 | "_advance", KINF, 0, | { } 146 | "sparse", KINF, 0, | { } 147 | "derivimplicit", DERF, 0, /* name hard wired in deriv.c */ | { } 148 | "cnexp", DERF, 0, /* see solve.c */ | { } 149 | "clsoda", DERF | KINF, 1, /* Tolerance built in to | { } 150 | scopgear.c */ 151 | "after_cvode", 0, 0, | { } 152 | "cvode_t", 0, 0, | { } 153 | "cvode_t_v", 0, 0, | { } 154 | 0, 0, 0 | { 155 | }; | } make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/passn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/passn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/passn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:4: /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c: In function 'lookup': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:27:30: warning: array subscript has type 'char' [-Wchar-subscripts] 27 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:25:38: note: in definition of macro 'ITERATE' 25 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:27:30: warning: array subscript has type 'char' [-Wchar-subscripts] 27 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:25:58: note: in definition of macro 'ITERATE' 25 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c: In function 'install': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:69:31: warning: array subscript has type 'char' [-Wchar-subscripts] 69 | sl = symlist[s[0]]; | ~^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/io.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/io.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/io.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/units.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/units.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:76:1: warning: missing braces around initializer [-Wmissing-braces] 76 | { | ^ 77 | 1e-18, "atto", | { } 78 | 1e-15, "femto", | { } 79 | 1e-12, "pico", | { } 80 | 1e-9, "nano", | { } 81 | 1e-6, "micro", | { } 82 | 1e-3, "milli", | { } 83 | 1e-2, "centi", | { } 84 | 1e-1, "deci", | { } 85 | 1e1, "deka", | { } 86 | 1e2, "hecta", | { } 87 | 1e2, "hecto", | { } 88 | 1e3, "kilo", | { } 89 | 1e6, "mega", | { } 90 | 1e6, "meg", | { } 91 | 1e9, "giga", | { } 92 | 1e12, "tera", | { } 93 | 0.0, 0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'pu': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:660:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 660 | if(u > 1) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 662 | return(2); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'unit_stk_clean': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'punit': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:185:34: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 185 | for (i=usp; i!=unit_stack-1; --i) { | ~~~~~~~~~~^~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'unit_init': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/units1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/units1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units1.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'flux': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:251:29: warning: unused variable 'isfunc' [-Wunused-variable] 251 | int isfunc; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'kinetic_implicit': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:706:30: warning: unused variable 'sparsedec' [-Wunused-variable] 706 | int i, nstate, flag, sparsedec, firsttrans, firsttrans1; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'massageconserve': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1024:15: warning: variable 'qv' set but not used [-Wunused-but-set-variable] 1024 | Item* qv; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'kinlist': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1160:15: warning: variable 'qv' set but not used [-Wunused-but-set-variable] 1160 | Item* qv; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'single_channel': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1590:13: warning: variable 'nstate' set but not used [-Wunused-but-set-variable] 1590 | int nstate, i; | ^~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1415:14: warning: 'astmt_last' defined but not used [-Wunused-variable] 1415 | static Item* astmt_last; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:120:12: warning: 'sparsedeclared' defined but not used [-Wunused-function] 120 | static int sparsedeclared(i) int i; { | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:110:14: warning: 'instance_loop' defined but not used [-Wunused-function] 110 | static char* instance_loop() { | ^~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 6%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/list.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 7%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.c:77:13: warning: 'pgm_name' defined but not used [-Wunused-variable] 77 | static char pgm_name[] = "nmodl"; | ^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 7%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'parout': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:224:16: warning: unused variable 'j' [-Wunused-variable] 224 | int i, j, ioncount, pointercount, gind, emit_check_table_thread; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'decode_limits': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:1377:16: warning: unused variable 'd1' [-Wunused-variable] 1377 | double d1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'decode_tolerance': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:1404:16: warning: unused variable 'd1' [-Wunused-variable] 1404 | double d1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'cvode_rw_cur': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2537:17: warning: variable 'sion' set but not used [-Wunused-but-set-variable] 2537 | Symbol* sion; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'net_receive': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2566:16: warning: unused variable 'b' [-Wunused-variable] 2566 | int i, b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'conductance_hint': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2744:15: warning: unused variable 'q' [-Wunused-variable] 2744 | Item* q; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:180:12: warning: 'cvode_index' defined but not used [-Wunused-variable] 180 | static int cvode_index; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:177:12: warning: 'cond_index' defined but not used [-Wunused-variable] 177 | static int cond_index; | ^~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 6%] Linking C executable ../../bin/modlunit cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/modlunit.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o CMakeFiles/modlunit.dir/__/modlunit/lex.c.o CMakeFiles/modlunit.dir/__/modlunit/consist.c.o CMakeFiles/modlunit.dir/__/modlunit/declare.c.o CMakeFiles/modlunit.dir/__/modlunit/init.c.o CMakeFiles/modlunit.dir/__/modlunit/io.c.o CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o CMakeFiles/modlunit.dir/__/modlunit/list.c.o CMakeFiles/modlunit.dir/__/modlunit/model.c.o CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o CMakeFiles/modlunit.dir/__/modlunit/passn.c.o CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o CMakeFiles/modlunit.dir/__/modlunit/units.c.o CMakeFiles/modlunit.dir/__/modlunit/units1.c.o CMakeFiles/modlunit.dir/__/modlunit/version.c.o -o ../../bin/modlunit make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 7%] Built target modlunit make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/rxdmath.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/rxdmath.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/rxdmath.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/rxdmath.dir/depend.internal". Scanning dependencies of target rxdmath make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 7%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/noccout.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 8%] Building C object src/nrnpython/CMakeFiles/rxdmath.dir/rxdmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Drxdmath_EXPORTS -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/rxdmath.dir/rxdmath.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxdmath.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 8%] Linking C shared library ../../lib/librxdmath.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E cmake_link_script CMakeFiles/rxdmath.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicc -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,librxdmath.so.0.0.0 -o ../../lib/librxdmath.so.0.0.0 CMakeFiles/rxdmath.dir/rxdmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E cmake_symlink_library ../../lib/librxdmath.so.0.0.0 ../../lib/librxdmath.so.0.0.0 ../../lib/librxdmath.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 8%] Built target rxdmath make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend.internal". Scanning dependencies of target rxd_cython_generated make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 8%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'vectorize_scan_for_func': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:403:13: warning: unused variable 'b' [-Wunused-variable] 403 | int b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:402:19: warning: unused variable 'qq' [-Wunused-variable] 402 | Item* q, *qq; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'defarg': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:425:25: warning: unused variable 'q3' [-Wunused-variable] 425 | Item *q3, *q; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'hocfunchack': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:959:15: warning: unused variable 'q' [-Wunused-variable] 959 | Item *q; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 8%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c: In function 'general_discon_adjust': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c:158:7: warning: unused variable 'i' [-Wunused-variable] 158 | int i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/partial.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/sens.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/simultan.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c: In function 'whileloop': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c:393:15: warning: variable 'cp' set but not used [-Wunused-but-set-variable] 393 | char *cp=0; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 8%] Generating ctng.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && /usr/bin/cython -2 ctng.pyx -o /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/ctng.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/cy_cpp_filt.sh /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/ctng.cpp + file=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/ctng.cpp + mingw= + test x = x1 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 9%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:3: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c: In function 'lookup': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:25:30: warning: array subscript has type 'char' [-Wchar-subscripts] 25 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.h:110:38: note: in definition of macro 'ITERATE' 110 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:25:30: warning: array subscript has type 'char' [-Wchar-subscripts] 25 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.h:110:58: note: in definition of macro 'ITERATE' 110 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c: In function 'install': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:65:31: warning: array subscript has type 'char' [-Wchar-subscripts] 65 | sl = symlist[s[0]]; | ~^~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 10%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/units.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/units.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/units.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nmodl/units.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:76:1: warning: missing braces around initializer [-Wmissing-braces] 76 | { | ^ 77 | 1e-18, "atto", | { } 78 | 1e-15, "femto", | { } 79 | 1e-12, "pico", | { } 80 | 1e-9, "nano", | { } 81 | 1e-6, "micro", | { } 82 | 1e-3, "milli", | { } 83 | 1e-2, "centi", | { } 84 | 1e-1, "deci", | { } 85 | 1e1, "deka", | { } 86 | 1e2, "hecta", | { } 87 | 1e2, "hecto", | { } 88 | 1e3, "kilo", | { } 89 | 1e6, "mega", | { } 90 | 1e6, "meg", | { } 91 | 1e9, "giga", | { } 92 | 1e12, "tera", | { } 93 | 0.0, 0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'pu': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:660:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 660 | if(u > 1) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 662 | return(2); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'unit_stk_clean': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'punit': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:185:34: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 185 | for (i=usp; i!=unit_stack-1; --i) { | ~~~~~~~~~~^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'unit_init': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 10%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 9%] Generating surfaces.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && /usr/bin/cython -2 surfaces.pyx -o /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/surfaces.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/cy_cpp_filt.sh /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/surfaces.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' + file=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/surfaces.cpp + mingw= + test x = x1 make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 10%] Generating graphicsPrimitives.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && /usr/bin/cython -2 graphicsPrimitives.pyx -o /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/graphicsPrimitives.cpp cd /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/cy_cpp_filt.sh /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/graphicsPrimitives.cpp + file=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/graphicsPrimitives.cpp + mingw= + test x = x1 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 10%] Built target rxd_cython_generated make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend.internal". Scanning dependencies of target rx3dextensions_0 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/runpy.sh /usr/bin/python3.9 runpy /usr/bin/python3.9 running build_ext + echo runpy /usr/bin/python3.9 + pyexe=/usr/bin/python3.9 + mingw= + shift + test x = x1 + /usr/bin/python3.9 setup.py build_ext --build-lib=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib/python make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 10%] Built target rx3dextensions_0 make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend.internal". Scanning dependencies of target rx3d make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build make[2]: Nothing to be done for 'share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build'. make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 10%] Built target rx3d make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 10%] Linking C executable ../../bin/nocmodl cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nocmodl.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o CMakeFiles/nocmodl.dir/__/nmodl/init.c.o CMakeFiles/nocmodl.dir/__/nmodl/io.c.o CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o CMakeFiles/nocmodl.dir/__/nmodl/list.c.o CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o CMakeFiles/nocmodl.dir/__/nmodl/units.c.o CMakeFiles/nocmodl.dir/__/nmodl/version.c.o -o ../../bin/nocmodl make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 10%] Built target nocmodl make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 10%] Generating ../../../src/nrnoc/apcount.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 11%] Generating ../../../src/nrnoc/exp2syn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 10%] Generating ../nrnoc/hocusr.h cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -E -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/neuron.h > neuron.tmp1 cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed /^#/d neuron.tmp1 > neuron.tmp2 cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/python3.9 /builddir/build/BUILD/nrn-7.8.1/src/oc/mk_hocusr_h.py < neuron.tmp2 > temp2hoc cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed s/\"nrnhoc_topology\"/\"topology\"/ temp2hoc > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c Thread Safe make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 11%] Generating ../../../src/nrnoc/expsyn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 12%] Generating ../../../src/nrnoc/feature.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c Notice: VERBATIM blocks are not thread safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 12%] Generating ../../../src/nrnoc/intfire1.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 12%] Generating ../../../src/nrnoc/hh.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c Thread Safe make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 12%] Generating ../../../src/nrnoc/intfire2.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c Thread Safe make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 12%] Generating ../../../src/nrnoc/intfire4.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 12%] Generating ../../../src/nrnoc/netstim.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.mod Notice: ARTIFICIAL_CELL is a synonym for POINT_PROCESS which hints that it only affects and is affected by discrete events. As such it is not located in a section and is not associated with an integrator cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 12%] Generating ../../../src/nrnoc/oclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 13%] Generating ../../../src/nrnoc/pattern.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.mod Notice: ARTIFICIAL_CELL is a synonym for POINT_PROCESS which hints that it only affects and is affected by discrete events. As such it is not located in a section and is not associated with an integrator cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 13%] Generating ../../../src/nrnoc/passive.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c Notice: Use of POINTER is not thread safe. Notice: VERBATIM blocks are not thread safe Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c Thread Safe make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 14%] Generating ../../../src/nrnoc/stim.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 14%] Generating ../../../src/nrnoc/ppmark.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c Thread Safe Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c Thread Safe make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 14%] Generating ../../../src/nrnoc/svclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 14%] Generating ../../../src/nrnoc/syn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c Thread Safe make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 14%] Generating ../../../src/nrnoc/vclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.mod cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c Notice: VERBATIM blocks are not thread safe Notice: LINEAR is not thread safe. make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nrniv_lib.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nrniv_lib.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nrniv_lib.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nrniv_lib.dir/depend.internal". Scanning dependencies of target nrniv_lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/apwindow.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/axis.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/bndedval.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/cbwidget.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/epsprint.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:38: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_real_radix2.c: In function 'int nrngsl_fft_real_radix2_transform(double*, size_t, size_t)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_real_radix2.c:91:7: warning: variable 'status' set but not used [-Wunused-but-set-variable] 91 | int status; | ^~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:39: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_hc_radix2.c: In function 'int nrngsl_fft_halfcomplex_radix2_transform(double*, size_t, size_t)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_hc_radix2.c:63:7: warning: variable 'status' set but not used [-Wunused-but-set-variable] 63 | int status; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp: In function 'void nrn_convlv(double*, long unsigned int, double*, long unsigned int, int, double*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:98:21: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 98 | for (i=1; i < n2; ++i) { | ~~^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:86:21: warning: unused variable 'x_' [-Wunused-variable] 86 | double scl, x_; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp: In function 'void nrn_spctrm(double*, double*, int, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:149:13: warning: variable 'ainv' set but not used [-Wunused-but-set-variable] 149 | double a, ainv, wfac, x_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:149:25: warning: unused variable 'x_' [-Wunused-variable] 149 | double a, ainv, wfac, x_; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/checkpnt.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'int LoadGIF(const char*, PICINFO*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:288:15: warning: variable 'ch' set but not used [-Wunused-but-set-variable] 288 | int ch, j, sbsize, cmtlen; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:156:22: warning: unused variable 'ch1' [-Wunused-variable] 156 | register byte ch, ch1, *origptr; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'int readImage(PICINFO*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:490:34: warning: unused variable 'picptr' [-Wunused-variable] 490 | register byte ch, ch1, *ptr1, *picptr; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:96:5: warning: 'BytesPerScanline' defined but not used [-Wunused-variable] 96 | BytesPerScanline, /* bytes per scanline in output raster */ | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'gif_image(char const*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:43:16: warning: 'image' may be used uninitialized in this function [-Wmaybe-uninitialized] 43 | return image; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graphvec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grglyph.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp: In member function 'virtual void HocMark::pick(ivCanvas*, const ivAllocation&, int, ivHit&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp:147:23: warning: unused variable 'x' [-Wunused-variable] 147 | Coord x = h.left(), y = h.bottom(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp:147:37: warning: unused variable 'y' [-Wunused-variable] 147 | Coord x = h.left(), y = h.bottom(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/hocmark.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In function 'double ivoc_view_size(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:433:13: warning: unused variable 'i' [-Wunused-variable] 433 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'void Graph::ascii_save(std::ostream&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:1692:37: warning: unused variable 'j' [-Wunused-variable] 1692 | int j, jcnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'virtual void Graph::wholeplot(ivCoord&, ivCoord&, ivCoord&, ivCoord&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:1812:20: warning: unused variable 'gl' [-Wunused-variable] 1812 | GraphLine* gl; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'void Graph::cross_action(char, GPolyLine*, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:2064:22: warning: unused variable 'buf' [-Wunused-variable] 2064 | char buf[256]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'virtual void LineExtension::request(ivRequisition&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:3392:21: warning: unused variable 'eps' [-Wunused-variable] 3392 | const float eps = 1e-4; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/htlist.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/idraw.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivoc.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp: In function 'bool nrn_optarg_on(const char*, int*, const char**)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:337:15: warning: unused variable 'a' [-Wunused-variable] 337 | char* a; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:332:13: warning: 'bool nrn_optarg_on(const char*, int*, char**)' declared 'static' but never defined [-Wunused-function] 332 | static bool nrn_optarg_on(const char* opt, int* argc, char** argv); | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:333:14: warning: 'char* nrn_optarg(const char*, int*, char**)' declared 'static' but never defined [-Wunused-function] 333 | static char* nrn_optarg(const char* opt, int* argc, char** argv); | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:334:12: warning: 'int nrn_optargint(const char*, int*, char**, int)' declared 'static' but never defined [-Wunused-function] 334 | static int nrn_optargint(const char* opt, int* argc, char** argv, int dflt); | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:32: /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:93:8: warning: when initialized here [-Wreorder] 93 | inline RandomInteger::RandomInteger(long low, long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:99:8: warning: when initialized here [-Wreorder] 99 | inline RandomInteger::RandomInteger(long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:106:8: warning: when initialized here [-Wreorder] 106 | inline RandomInteger::RandomInteger(RNG *gen) | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp: In function 'void steer_x(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp:731:17: warning: unused variable 's' [-Wunused-variable] 731 | Symbol* s = hoc_spop(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp: In function 'void* cons(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp:139:1: warning: control reaches end of non-void function [-Wreturn-type] 139 | } | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp: In function 'int nrn_feround(int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp:37:13: warning: unused variable 'm' [-Wunused-variable] 37 | int m; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_fread(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:445:12: note: in expansion of macro 'FRead' 445 | FRead(xs,sizeof(short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:454:12: note: in expansion of macro 'FRead' 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:460:12: note: in expansion of macro 'FRead' 460 | FRead(xf,sizeof(float),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:472:12: note: in expansion of macro 'FRead' 472 | FRead(xi,sizeof(unsigned short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:483:12: note: in expansion of macro 'FRead' 483 | FRead(xc,sizeof(char),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:418:15: warning: unused variable 's' [-Wunused-variable] 418 | void* s = (void*)(vp->vec()); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_vwrite(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:532:12: note: in expansion of macro 'FWrite' 532 | FWrite(xi,sizeof(int),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:541:12: note: in expansion of macro 'FWrite' 541 | FWrite(x,sizeof(double),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:551:12: note: in expansion of macro 'FWrite' 551 | FWrite(xf,sizeof(float),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:577:12: note: in expansion of macro 'FWrite' 577 | FWrite(x,sizeof(unsigned short),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:602:12: note: in expansion of macro 'FWrite' 602 | FWrite(x,sizeof(char),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_vread(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:658:12: note: in expansion of macro 'FRead' 658 | FRead(xi,sizeof(int),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:668:12: note: in expansion of macro 'FRead' 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__elem(i),double) } | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:677:12: note: in expansion of macro 'FRead' 677 | FRead(xf,sizeof(float),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | } | ~ 682 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 683 | break; | ~~~~~~ 684 | } | ~ 685 | | 686 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 689 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 691 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 692 | | 693 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:694:12: note: in expansion of macro 'FRead' 694 | FRead(xi,sizeof(unsigned short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | } | ~ 682 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 683 | break; | ~~~~~~ 684 | } | ~ 685 | | 686 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 689 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 691 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 692 | | 693 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (i=0;ielem(i) = double(xi[i]/sf +min); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 698 | } | ~ 699 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 700 | break; | ~~~~~~ 701 | } | ~ 702 | | 703 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 704 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 705 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 706 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 707 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 708 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 709 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 710 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:710:12: note: in expansion of macro 'FRead' 710 | FRead(xc,sizeof(char),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:614:15: warning: unused variable 's' [-Wunused-variable] 614 | void* s = (void*)(vp->vec()); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'Object** v_hist(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:1127:16: warning: unused variable 'high' [-Wunused-variable] 1127 | double high = start+step*size; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_indwhere(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:1755:16: warning: unused variable 'm' [-Wunused-variable] 1755 | int i, iarg, m=0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'v_medfltr(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:3206:13: warning: 'operator delete[](void*)' called on pointer returned from a mismatched allocation function [-Wmismatched-new-delete] 3206 | delete [] res; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:3191:33: note: returned from 'calloc' 3191 | double *res = (double *)calloc(n,(unsigned)sizeof(double)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'call_simplex(double*, int, IvocVect*, IvocVect*, char*, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:2694:17: warning: 'retval' may be used uninitialized in this function [-Wmaybe-uninitialized] 2694 | return (retval); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/objcmd.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbrowsr.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp: In member function 'virtual void OcBox::box_append(OcGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp:577:20: warning: unused variable 'wk' [-Wunused-variable] 577 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp: In member function 'virtual void OcDeck::box_append(OcGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp:293:20: warning: unused variable 'wk' [-Wunused-variable] 293 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp:294:20: warning: unused variable 'lk' [-Wunused-variable] 294 | LayoutKit& lk = *LayoutKit::instance(); | ^~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp: In function 'bool makePath(const string&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp:586:21: warning: comparison of integer expressions of different signedness: 'int' and 'const size_type' {aka 'const long unsigned int'} [-Wsign-compare] 586 | if (pos == std::string::npos) | ~~~~^~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:84:13: warning: 'void readmore()' defined but not used [-Wunused-function] 84 | static void readmore() { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:40:24: warning: 'filequeue' defined but not used [-Wunused-variable] 40 | static CopyStringList* filequeue; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:16:14: warning: 'help_pipe' defined but not used [-Wunused-variable] 16 | static FILE* help_pipe; | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oclist.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocnoiv1.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp: In member function 'virtual void OcFullMatrix::solv(IvocVect*, IvocVect*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp:290:43: warning: comparison of integer expressions of different signedness: 'u_int' {aka 'unsigned int'} and 'int' [-Wsign-compare] 290 | }else if (use_lu && lu_factor_->m == nrow()) { | ~~~~~~~~~~~~~~^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocobserv.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocpicker.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocpointer.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocptrvector.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/octimer.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/rect.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/rubband.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp: In member function 'virtual void Scene::save_class(std::ostream&, const char*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp:870:14: warning: unused variable 'count' [-Wunused-variable] 870 | long count = views_->count(); | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In constructor 'PrintableWindowManager::PrintableWindowManager()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1206:15: warning: variable 'wp1' set but not used [-Wunused-but-set-variable] 1206 | Coord wp1; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1246:38: warning: unused variable 'mother' [-Wunused-variable] 1246 | Menu* mbar, *mprint, *mses, *mother; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PrintableWindowManager::reconfigured(PrintableWindow*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1642:15: warning: unused variable 'r' [-Wunused-variable] 1642 | Coord r = l + w->width_pw(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1644:15: warning: unused variable 't' [-Wunused-variable] 1644 | Coord t = b + w->height_pw(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PrintableWindowManager::reconfigured(JavaWindow*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1672:15: warning: unused variable 'r' [-Wunused-variable] 1672 | Coord r = l + w->w(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1674:15: warning: unused variable 't' [-Wunused-variable] 1674 | Coord t = b + w->h(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PWMImpl::common_print(ivPrinter*, bool, bool)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:2017:23: warning: unused variable 'sfac' [-Wunused-variable] 2017 | float sfac; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'PWMImpl::save_list(int, ScreenItem**, std::basic_ostream >&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:3228:50: warning: 'ocg' may be used uninitialized in this function [-Wmaybe-uninitialized] 3228 | ocg->save(o); | ~~~~~~~~~^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp: In member function 'virtual void SpecView::execute()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:691:14: warning: unused variable 'bx' [-Wunused-variable] 691 | bool bx = var_pair_chooser("X size", x1, x2, v->canvas()->window()); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:692:14: warning: unused variable 'by' [-Wunused-variable] 692 | bool by = var_pair_chooser("Y size", y1, y2, v->canvas()->window()); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp: In member function 'void OcViewGlyph::viewmenu(ivGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:761:28: warning: unused variable 'wk' [-Wunused-variable] 761 | WidgetKit& wk = *WidgetKit::instance(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp: In function 'Object** l_alias_list(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp:169:22: warning: unused variable 'buf' [-Wunused-variable] 169 | char buf[256]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp:167:13: warning: unused variable 'id' [-Wunused-variable] 167 | int id = (*po)->index; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp: In function 'bool str_chooser(const char*, char*, ivWindow*, ivCoord, ivCoord)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp:191:20: warning: unused variable 'l' [-Wunused-variable] 191 | LayoutKit& l = *LayoutKit::instance(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp: In static member function 'static bool Graph::label_chooser(const char*, char*, GLabel*, ivCoord, ivCoord)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp:350:20: warning: unused variable 'l' [-Wunused-variable] 350 | LayoutKit& l = *LayoutKit::instance(); | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp: In member function 'virtual void SymChooser::reread()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp:265:21: warning: unused variable 'fc' [-Wunused-variable] 265 | SymChooserImpl& fc = *impl_; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp: In member function 'void SymChooserImpl::accept_browser_index(int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp:627:13: warning: unused variable 'sym' [-Wunused-variable] 627 | Symbol* sym = dir->symbol(i); | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp: In member function 'virtual void XYView::transform(ivTransformer&, const ivAllocation&, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:478:26: warning: unused variable 'nx' [-Wunused-variable] 478 | const Allotment& nx = n.x_allotment(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:479:26: warning: unused variable 'ny' [-Wunused-variable] 479 | const Allotment& ny = n.y_allotment(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:480:17: warning: unused variable 'v' [-Wunused-variable] 480 | XYView* v = (XYView*)this; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp: In member function 'virtual void View::transform(ivTransformer&, const ivAllocation&, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:554:15: warning: unused variable 'sy' [-Wunused-variable] 554 | float sy = ay.span()/XYView::height(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/field.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xdep.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In function 'void set_format()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:1835:22: warning: unused variable 'len' [-Wunused-variable] 1835 | static Coord len; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'virtual void HocEditorForItem::val_inc(const ivEvent&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2213:15: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 2213 | if (i == strlen(buf)) { | ~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In constructor 'StepperMenu::StepperMenu()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2394:20: warning: unused variable 'k' [-Wunused-variable] 2394 | WidgetKit& k = *WidgetKit::instance(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'void HocStateButton::button_action()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2855:26: warning: unused variable 't' [-Wunused-variable] 2855 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2861:26: warning: unused variable 't' [-Wunused-variable] 2861 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'void HocStateMenuItem::button_action()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:3006:26: warning: unused variable 't' [-Wunused-variable] 3006 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:3012:26: warning: unused variable 't' [-Wunused-variable] 3012 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:1835:22: warning: 'len' defined but not used [-Wunused-variable] 1835 | static Coord len; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:887:13: warning: 'void saveMenuFile()' defined but not used [-Wunused-function] 887 | static void saveMenuFile() { | ^~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbs.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbs.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbs.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'virtual void BBSImpl::execute(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:290:23: warning: unused variable 's' [-Wunused-variable] 290 | char* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:292:21: warning: unused variable 'i' [-Wunused-variable] 292 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'virtual bool BBSImpl::working(int&, double&, int&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:390:29: warning: unused variable 'wid' [-Wunused-variable] 390 | int wid = upkint(); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:404:7: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized] 404 | printf("working n_=%d: after %d try elapsed %g sec got result for %d id=%d x=%g\n", | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | n_, cnt, time()-t, working_id_, id, x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'BBS::take(char const*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:476:23: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized] 476 | printf("end take |%s| elapsed %g from %g\n", key, time()-t, t); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsdirect.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslocal.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:13, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslocal.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp: In member function 'virtual char* BBSLocal::upkpickle(size_t*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:89:19: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 89 | assert(*n == len); | ~~~^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hocassrt.h:19:28: note: in definition of macro 'assert' 19 | # define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslsrv.cpp: In member function 'void BBSLocalServer::post(const char*, MessageValue*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslsrv.cpp:320:31: warning: variable 'm' set but not used [-Wunused-but-set-variable] 320 | MessageList::iterator m = messages_->insert( | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv2.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv2.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbssrv2mpi.cpp: In member function 'void BBSDirectServer::post(const char*, bbsmpibuf*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbssrv2mpi.cpp:235:39: warning: variable 'm' set but not used [-Wunused-but-set-variable] 235 | MessageList::iterator m = messages_->insert( | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsrcli.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsrcli.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp: In member function 'virtual void BBSClient::take(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:233:13: warning: unused variable 'bufid' [-Wunused-variable] 233 | int bufid; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp: In member function 'virtual void BBSClient::start()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:326:15: warning: unused variable 'client' [-Wunused-variable] 326 | char* client = 0; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:327:13: warning: unused variable 'tid' [-Wunused-variable] 327 | int tid; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:328:13: warning: unused variable 'n' [-Wunused-variable] 328 | int n; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbssrv.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 26%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bgpmeminfo.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cachevec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cachevec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'double save_test_bin(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:629:22: warning: unused variable 'ss' [-Wunused-variable] 629 | BBSaveState* ss = (BBSaveState*)v; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:174: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'double restore_test_bin(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:899:61: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 899 | nrn_assert(fread(buf, sizeof(char), global_size, f) == global_size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:920:60: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 920 | nrn_assert(fread(buf, sizeof(char), sz, f) == sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void tqcallback(const TQItem*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1142:33: warning: unused variable 'dl' [-Wunused-variable] 1142 | DEList *dl=0, *dl1=0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1172:42: warning: unused variable 'tt' [-Wunused-variable] 1172 | int srcid, i; double ts, tt; PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::del_pp2de()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1360:17: warning: unused variable 'dl' [-Wunused-variable] 1360 | DEList* dl, *dl1; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'int BBSaveState::counts(int**, int**)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1460:58: warning: unused variable 'base' [-Wunused-variable] 1460 | NrnHashIterateKeyValue(Int2Int, base2spgid, int, base, int, spgid) { | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1460:69: warning: unused variable 'spgid' [-Wunused-variable] 1460 | NrnHashIterateKeyValue(Int2Int, base2spgid, int, base, int, spgid) { | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:90:31: note: in definition of macro 'NrnHashIterateKeyValue' 90 | Value value = (*p__).second; \ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::mech(Prop*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1796:32: warning: unused variable 'd' [-Wunused-variable] 1796 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1798:32: warning: unused variable 'd' [-Wunused-variable] 1798 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1810:40: warning: unused variable 'd' [-Wunused-variable] 1810 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1812:40: warning: unused variable 'd' [-Wunused-variable] 1812 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1818:40: warning: unused variable 'd' [-Wunused-variable] 1818 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1820:40: warning: unused variable 'd' [-Wunused-variable] 1820 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::netrecv_pp(Point_process*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1835:13: warning: unused variable 'type' [-Wunused-variable] 1835 | int type = pp->prop->type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void all2allv_int2(int*, int*, int*, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1965:13: warning: unused variable 'i' [-Wunused-variable] 1965 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void all2allv_dbl1(int*, int*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1990:13: warning: unused variable 'i' [-Wunused-variable] 1990 | int i, size; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void scatteritems()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2036:68: warning: unused variable 'gid' [-Wunused-variable] 2036 | NrnHashIterateKeyValue(Int2DblList, src2send, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2070:60: warning: unused variable 'gid' [-Wunused-variable] 2070 | NrnHashIterateKeyValue(Int2DblList, src2send, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2015:16: warning: unused variable 'gid' [-Wunused-variable] 2015 | int i, gid, host; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2016:18: warning: unused variable 'dl' [-Wunused-variable] 2016 | DblList* dl; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void construct_presyn_queue()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' bbsavestate.cpp:2194:48: warning: unused variable 't2' [-Wunused-variable] 2194 | double t2 = dl->item(j); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:13: warning: unused variable 'gid' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:35: warning: unused variable 'ts' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:39: warning: unused variable 'tt' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void bbss_queuecheck()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2464:70: warning: unused variable 'gid' [-Wunused-variable] 2464 | NrnHashIterateKeyValue(Int2DblList, queuecheck_gid2unc, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/classreg.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/classreg.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/classreg.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodestb.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodestb.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp: In function 'void deliver_net_events(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:43:13: warning: unused variable 'i' [-Wunused-variable] 43 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:38:13: warning: 'void check_thresh(NrnThread*)' declared 'static' but never defined [-Wunused-function] 38 | static void check_thresh(NrnThread*); | ^~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodeobj.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodeobj.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'double use_mxb(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:345:19: warning: unused variable 'd' [-Wunused-variable] 345 | NetCvode* d = (NetCvode*)v; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'double cache_efficient(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:358:19: warning: unused variable 'd' [-Wunused-variable] 358 | NetCvode* d = (NetCvode*)v; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'void Cvode::activate_maxstate(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:921:21: warning: unused variable 'i' [-Wunused-variable] 921 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'int Cvode::cvode_init(double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1055:13: warning: unused variable 'iter' [-Wunused-variable] 1055 | int iter; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'int Cvode::daspk_advance_tn()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1334:13: warning: unused variable 'flag' [-Wunused-variable] 1334 | int flag, err; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1335:16: warning: unused variable 'tin' [-Wunused-variable] 1335 | double tin; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* msolve_thread_part2(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1473:13: warning: unused variable 'i' [-Wunused-variable] 1473 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* f_thread_ms_part2(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1569:13: warning: unused variable 'i' [-Wunused-variable] 1569 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* f_thread_ms_part3(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1575:13: warning: unused variable 'i' [-Wunused-variable] 1575 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:689:14: warning: 'void* msetup_thread(NrnThread*)' declared 'static' but never defined [-Wunused-function] 689 | static void* msetup_thread(NrnThread*); | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvtrset.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/datapath.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/datapath.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/datapath.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/datapath.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'PathValue* HocDataPathImpl::found_v(void*, const char*, Symbol*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:265:13: warning: unused variable 'len' [-Wunused-variable] 265 | int len = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'void HocDataPathImpl::search_vectors()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:424:16: warning: unused variable 'cnt' [-Wunused-variable] 424 | int i, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'void HocDataPathImpl::search(Node*, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:483:13: warning: unused variable 'i' [-Wunused-variable] 483 | int i, cnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:483:16: warning: unused variable 'cnt' [-Wunused-variable] 483 | int i, cnt; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cxprop.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'void read_temp1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:86:13: warning: unused variable 'nscan' [-Wunused-variable] 86 | int nscan, maxtype, imech, nmech, type, sz1, sz2, ntget, ith, nth, i, j, cnt, seq; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'void nrn_cache_prop_realloc()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:606:21: warning: unused variable 'j' [-Wunused-variable] 606 | int j, cnt = ml->nodecount; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:585:20: warning: unused variable 'type' [-Wunused-variable] 585 | int i, it, type; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/finithnd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/finithnd.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp: In constructor 'geometry3d_Cylinder::geometry3d_Cylinder(double, double, double, double, double, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:441:52: warning: 'geometry3d_Cylinder::cz' will be initialized after [-Wreorder] 441 | double r, rr, axisx, axisy, axisz, cx, cy, cz, h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:441:19: warning: 'double geometry3d_Cylinder::rr' [-Wreorder] 441 | double r, rr, axisx, axisy, axisz, cx, cy, cz, h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:444:1: warning: when initialized here [-Wreorder] 444 | geometry3d_Cylinder::geometry3d_Cylinder(double x0, double y0, double z0, | ^~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/hocmech.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp: In function 'void make_pointprocess()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp:311:21: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 311 | for (i=0; i < s2->s_varn; ++i) { | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp:252:14: warning: unused variable 'buf' [-Wunused-variable] 252 | char buf[256]; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/glinerec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp: In member function 'void GraphVector::record_install()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp:165:18: warning: unused variable 'gvr' [-Wunused-variable] 165 | GVectorRecord* gvr = new GVectorRecord(this); | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/impedanc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/impedanc.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/kssingle.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp: In member function 'void KSSingle::state(Node*, double*, Datum*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp:246:13: warning: unused variable 'i' [-Wunused-variable] 246 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp: In member function 'void KSSingle::cv_update(Node*, double*, Datum*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp:262:13: warning: unused variable 'i' [-Wunused-variable] 262 | int i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/linmod.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/linmod.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/linmod.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/linmod1.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/linmod1.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h: In constructor 'MatrixMap::MatrixMap(OcMatrix&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:63:18: warning: 'MatrixMap::ptree_' will be initialized after [-Wreorder] 63 | double** ptree_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:62:18: warning: 'double** MatrixMap::pm_' [-Wreorder] 62 | double** pm_; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:10:1: warning: when initialized here [-Wreorder] 10 | MatrixMap::MatrixMap(Matrix& mat) | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h: In constructor 'MatrixMap::MatrixMap(OcMatrix*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:63:18: warning: 'MatrixMap::ptree_' will be initialized after [-Wreorder] 63 | double** ptree_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:62:18: warning: 'double** MatrixMap::pm_' [-Wreorder] 62 | double** pm_; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:14:1: warning: when initialized here [-Wreorder] 14 | MatrixMap::MatrixMap(Matrix* mat) | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp: In member function 'void MatrixMap::alloc(int, int, Node**, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:50:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 50 | for (int k = 0; k < nonzero_i.size(); k++) { | ~~^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:41:13: warning: unused variable 'nrow' [-Wunused-variable] 41 | int nrow = m_.nrow(); | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:42:13: warning: unused variable 'ncol' [-Wunused-variable] 42 | int ncol = m_.ncol(); | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/kschan.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/kschan.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_vres(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:292:17: warning: unused variable 'ks' [-Wunused-variable] 292 | KSChan* ks = (KSChan*)v; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_rseed(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:301:17: warning: unused variable 'ks' [-Wunused-variable] 301 | KSChan* ks = (KSChan*)v; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_pr(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:653:17: warning: unused variable 's' [-Wunused-variable] 653 | Symbol* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:655:16: warning: unused variable 'j' [-Wunused-variable] 655 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In constructor 'KSChan::KSChan(Object*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:874:13: warning: unused variable 'i' [-Wunused-variable] 874 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setname(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:990:46: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 990 | if (!is_point()) for (i=0; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setion(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1202:40: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1202 | for (i=2+io; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1240:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1240 | for (i=1 + io; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::free1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1270:29: warning: deleting object of polymorphic class type 'KSIv' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 1270 | if (iv_relation_) { delete iv_relation_; iv_relation_ = NULL; } | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setcond()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1289:29: warning: deleting object of polymorphic class type 'KSIv' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 1289 | if (iv_relation_) { delete iv_relation_; } | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::settype(KSTransition*, int, const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1443:14: warning: variable 'move' set but not used [-Wunused-but-set-variable] 1443 | bool move = true; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::ion_consist()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2249:18: warning: unused variable 'sec' [-Wunused-variable] 2249 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::state_consist(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2308:18: warning: unused variable 'sec' [-Wunused-variable] 2308 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'virtual void KSChan::cv_sc_update(int, Node**, double**, Datum**, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2910:16: warning: unused variable 'j' [-Wunused-variable] 2910 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2911:17: warning: unused variable 's' [-Wunused-variable] 2911 | double* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::usetable(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:3043:13: warning: unused variable 'i' [-Wunused-variable] 3043 | int i; | ^ In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2: In function 'strncpy', inlined from 'kst_ligand(void*)' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:633:10: /usr/include/bits/string_fortified.h:95:34: warning: 'strncpy' specified bound 20 equals destination size [-Wstringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp: In member function 'bool NrnProperty::more_var()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp:138:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 138 | if (npi_->iterator_ >= npi_->sym_->s_varn) { | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/multisplit.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::multisplit_clear()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:523:29: warning: unused variable 'ms' [-Wunused-variable] 523 | MultiSplit* ms; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::prstruct()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1773:23: warning: unused variable 'nd' [-Wunused-variable] 1773 | Node* nd = ms->nd[0]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::multisplit_nocap_v_part3(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1956:16: warning: unused variable 'j' [-Wunused-variable] 1956 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In destructor 'virtual ReducedTree::~ReducedTree()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2454:13: warning: unused variable 'i' [-Wunused-variable] 2454 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitThread::bksub_backbone(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:19: warning: unused variable 'ip' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:23: warning: unused variable 'ip1' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:28: warning: unused variable 'ip2' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::pmat(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3291:12: warning: unused variable 'ip' [-Wunused-variable] 3291 | int it, i, ip, is; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::pmatf(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3321:12: warning: unused variable 'ip' [-Wunused-variable] 3321 | int it, i, ip, is; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'MultiSplitControl::multisplit(Section*, double, int, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:411:38: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized] 411 | hoc_execerror(s, secname(root->sec)); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/netpar.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/netpar.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrn_cleanup_presyn(PreSyn*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:964:17: warning: unused variable 'pss' [-Wunused-variable] 964 | PreSyn* pss; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrnmpi_gid_clear(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:980:17: warning: unused variable 'ps' [-Wunused-variable] 980 | PreSyn* ps, *psi; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrn_gidout_iter(PFIO)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1508:17: warning: unused variable 'ps' [-Wunused-variable] 1508 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'size_t nrncore_netpar_bytes()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1529:11: warning: unused variable 'ps' [-Wunused-variable] 1529 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrncore_netpar_cellgroups_helper(nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1580:11: warning: unused variable 'ps' [-Wunused-variable] 1580 | PreSyn* ps; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In constructor 'NonLinImpRep::NonLinImpRep()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:206:16: warning: unused variable 'j' [-Wunused-variable] 206 | int i, j, ieq, cnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:206:19: warning: unused variable 'ieq' [-Wunused-variable] 206 | int i, j, ieq, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'void NonLinImpRep::dsds()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:520:64: warning: unused variable 'nd' [-Wunused-variable] 520 | for (in = 0; in < ml->nodecount; ++in) { Node* nd = ml->nodelist[in]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'void NonLinImpRep::ode(int, Memb_list*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:557:13: warning: unused variable 'i' [-Wunused-variable] 557 | int i, nc; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:557:16: warning: variable 'nc' set but not used [-Wunused-but-set-variable] 557 | int i, nc; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'NonLinImpRep::gapsolve()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'jb' may be used uninitialized in this function [-Wmaybe-uninitialized] 619 | cmplx_spSolve(m_, rb-1, rx1-1, jb-1, jx1-1); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'rb' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'jx1' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'rx1' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:626:61: warning: 'jx' may be used uninitialized in this function [-Wmaybe-uninitialized] 626 | double err = fabs(rx1[i] - rx[i]) + fabs(jx1[i] - jx[i]); | ~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:626:38: warning: 'rx' may be used uninitialized in this function [-Wmaybe-uninitialized] 626 | double err = fabs(rx1[i] - rx[i]) + fabs(jx1[i] - jx[i]); | ~~~~^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/netcvode.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In static member function 'static DiscreteEvent* PlayRecordEvent::savestate_read(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:341:24: warning: unused variable 'de' [-Wunused-variable] 341 | DiscreteEvent* de = nil; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::del_cv_memb_list(Cvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1438:13: warning: unused variable 'i' [-Wunused-variable] 1438 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::distribute_dinfo(int*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1500:13: warning: unused variable 'i' [-Wunused-variable] 1500 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'bool NetCvode::init_global()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1800:50: warning: unused variable 'z' [-Wunused-variable] 1800 | CvodeThreadData& z = cv.ctd_[0]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::init_events()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:2802:16: warning: unused variable 'fifodelay' [-Wunused-variable] 2802 | double fifodelay; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In static member function 'static DiscreteEvent* SelfEvent::savestate_read(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3267:45: warning: unused variable 'iml' [-Wunused-variable] 3267 | int ppindex, ncindex, moff, pptype, iml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3269:17: warning: unused variable 'obj' [-Wunused-variable] 3269 | Object* obj; | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'int NetCvode::pgvts_event(double&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3578:13: warning: unused variable 'rank' [-Wunused-variable] 3578 | int rank, op, err, init; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::re_init(double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3913:19: warning: unused variable 'k' [-Wunused-variable] 3913 | int i, j, k, l; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3913:22: warning: unused variable 'l' [-Wunused-variable] 3913 | int i, j, k, l; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCon* NetCvode::install_deliver(double*, Section*, Object*, Object*, double, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4485:13: warning: unused variable 'i' [-Wunused-variable] 4485 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'virtual void WatchCondition::pgvts_deliver(double, NetCvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5400:20: warning: unused variable 'nt' [-Wunused-variable] 5400 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'virtual void STECondition::pgvts_deliver(double, NetCvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5417:20: warning: unused variable 'nt' [-Wunused-variable] 5417 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In function 'void nrnthread_trajectory_values(int, int, void**, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5736:9: warning: unused variable 'i_trajec' [-Wunused-variable] 5736 | int i_trajec = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::deliver_net_events(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5831:20: warning: unused variable 'tt' [-Wunused-variable] 5831 | double tm, tt, tsav; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::vec_remove()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6198:19: warning: unused variable 'iv' [-Wunused-variable] 6198 | IvocVect* iv = vector_arg(1); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::playrec_setup()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6207:17: warning: unused variable 'px' [-Wunused-variable] 6207 | double* px; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'double NetCvode::state_magnitudes()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6378:25: warning: unused variable 'ms' [-Wunused-variable] 6378 | double* ms; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6346:13: warning: unused variable 'i' [-Wunused-variable] 6346 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::maxstate_analyse()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6441:23: warning: unused variable 'n' [-Wunused-variable] 6441 | int i, it, j, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::error_weights()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4236:35: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] 4236 | gcv_->states(vp + j); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::acor()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4265:35: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] 4265 | gcv_->states(vp + j); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::maxstate_analyse()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6460:43: warning: 'msi' may be used uninitialized in this function [-Wmaybe-uninitialized] 6460 | maxstate_analyze_1(it, *gcv_, msi, gcv_->ctd_[it]); | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrndae.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h: In constructor 'NrnDAE::NrnDAE(OcMatrix*, IvocVect*, IvocVect*, int, Node**, IvocVect*, void (*)(void*), void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:186:14: warning: 'NrnDAE::yptmp_' will be initialized after [-Wreorder] 186 | Vect yptmp_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:183:14: warning: 'IvocVect NrnDAE::cyp_' [-Wreorder] 183 | Vect cyp_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:137:1: warning: when initialized here [-Wreorder] 137 | NrnDAE::NrnDAE(Matrix* cmat, Vect* const yvec, Vect* const y0, int nnode, | ^~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:183:14: warning: 'NrnDAE::cyp_' will be initialized after [-Wreorder] 183 | Vect cyp_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:139:12: warning: 'void (* NrnDAE::f_init_)(void*)' [-Wreorder] 139 | void (*f_init_)(void* data); | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:137:1: warning: when initialized here [-Wreorder] 137 | NrnDAE::NrnDAE(Matrix* cmat, Vect* const yvec, Vect* const y0, int nnode, | ^~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndaspk.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndaspk.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp: In member function 'int Daspk::init()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:233:13: warning: unused variable 'i' [-Wunused-variable] 233 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:64:12: warning: 'int msolve(IDAMem, N_Vector, N_Vector, N_Vector, N_Vector)' declared 'static' but never defined [-Wunused-function] 64 | static int msolve(IDAMem mem, N_Vector b, N_Vector ycur, N_Vector ypcur, | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:216:15: warning: 'double check(double, Daspk*)' defined but not used [-Wunused-function] 216 | static double check(double t, Daspk* ida) { | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:111: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnsection_mapping.h: In member function 'CellMapping* NrnMappingInfo::get_cell_mapping(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnsection_mapping.h:119:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 119 | for(int i = 0; i < mapping.size(); i++) { | ~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'size_t part1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:275:22: warning: unused variable 'tml' [-Wunused-variable] 275 | NrnThreadMembList* tml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void datumtransform(nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:730:16: warning: unused variable 'nt' [-Wunused-variable] 730 | NrnThread& nt = nrn_threads[ith]; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/tqueue.h:58, from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/netcvode.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:109: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void write_contiguous_art_data(double**, int, int, FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1081:14: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 1081 | assert(n == szitem); | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_2(int, int*&, double*&, double*&, double*&, double*&, double*&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1257:7: warning: unused variable 'n' [-Wunused-variable] 1257 | int n = nt.end; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_3(int, int, int*&, double*&, int*&, int*&, double*&, double*&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1359:14: warning: unused variable 'nt' [-Wunused-variable] 1359 | NrnThread& nt = nrn_threads[tid]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_corepointer(int, int&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1397:14: warning: unused variable 'nt' [-Wunused-variable] 1397 | NrnThread& nt = nrn_threads[tid]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void write_nrnthread_task(const char*, nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1696:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 1696 | for (int i = 0; i < iRecvVec.size(); ++i) | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int* datum2int(int, Memb_list*, NrnThread&, nrncore_CellGroup&, nrncore_DatumIndices&, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1712:12: warning: unused variable 'd' [-Wunused-variable] 1712 | Datum* d = ml->pdata[i]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void* get_coreneuron_handle()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1952:15: warning: ignoring return value of 'char* getcwd(char*, size_t)' declared with attribute 'warn_unused_result' [-Wunused-result] 1952 | getcwd(pwd, FILENAME_MAX); | ~~~~~~^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1075:13: warning: 'void write_contiguous_art_data(double**, int, int, FILE*)' defined but not used [-Wunused-function] 1075 | static void write_contiguous_art_data(double** data, int nitem, int szitem, FILE* f) { | ^~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DNRNCMAKE -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -DUSE_LIBNRNPYTHON_MAJORMINOR=0 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnpy.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp: In function 'void mech_menu(Prop*, double, int, const char*, MechSelector*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:291:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 291 | for (j=0; j < sym->s_varn; j++ ) { | ~~^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp: In function 'void point_menu(Object*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:459:47: warning: array subscript has type 'char' [-Wchar-subscripts] 459 | psym = pointsym[pnt_map[pp->prop->type]]; | ~~~~~~~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:476:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 476 | for (k=0; k < psym->s_varn; k++ ) { | ~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:488:44: warning: unused variable 'a' [-Wunused-variable] 488 | Arrayinfo* a = vsym->arayinfo; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 32%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnrtime.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 32%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnste.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnste.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c: In function 'N_VNew_NrnSerialLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c:160:21: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] 160 | NV_DATA_S_LD(v) = data; /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c: In function 'N_VClone_NrnSerialLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c:364:21: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] 364 | NV_DATA_S_LD(v) = data; make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c: In function 'N_VNew_NrnThread': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:175:30: warning: unused variable 'content' [-Wunused-variable] 175 | N_VectorContent_NrnThread* content; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c: In function 'N_VWL2Norm_NrnThread': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:701:12: warning: variable 'N' set but not used [-Wunused-but-set-variable] 701 | long int N; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:781:14: warning: 'vminquotient' defined but not used [-Wunused-function] 781 | static void* vminquotient(NrnThread* nt) { | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:366:13: warning: 'pr' defined but not used [-Wunused-function] 366 | static void pr(N_Vector x) { N_VPrint_NrnThread(x); } | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c: In function 'N_VNew_NrnThreadLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:175:32: warning: unused variable 'content' [-Wunused-variable] 175 | N_VectorContent_NrnThreadLD* content; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c: In function 'N_VWL2Norm_NrnThreadLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:700:12: warning: variable 'N' set but not used [-Wunused-but-set-variable] 700 | long int N; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:780:14: warning: 'vminquotient' defined but not used [-Wunused-function] 780 | static void* vminquotient(NrnThread* nt) { | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:365:13: warning: 'pr' defined but not used [-Wunused-function] 365 | static void pr(N_Vector x) { N_VPrint_NrnThreadLD(x); } | ^~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In function 'double multisplit(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:616:13: warning: unused variable 'reducedtree_host' [-Wunused-variable] 616 | int reducedtree_host = 0; | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In member function 'virtual void BBSImpl::return_args(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1304:13: warning: variable 'i' set but not used [-Wunused-but-set-variable] 1304 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1308:13: warning: unused variable 'wid' [-Wunused-variable] 1308 | int wid = upkint(); | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In function 'broadcast(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:864:38: warning: 's' may be used uninitialized in this function [-Wmaybe-uninitialized] 864 | nrnmpi_char_broadcast(s, cnt, srcid); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/occvode.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/occvode.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/occvode.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/occvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::new_no_cap_memb(CvodeThreadData&, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:277:20: warning: unused variable 'ml' [-Wunused-variable] 277 | Memb_list* ml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::fun_thread_ms_part1(double, double*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:715:26: warning: unused variable 'z' [-Wunused-variable] 715 | CvodeThreadData& z = ctd_[nt->id]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::before_after(BAMechList*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:764:16: warning: unused variable 'j' [-Wunused-variable] 764 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::acor(double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:989:20: warning: unused variable 'nt' [-Wunused-variable] 989 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'Cvode::new_no_cap_memb(CvodeThreadData&, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:298:35: warning: 'ncm' may be used uninitialized in this function [-Wmaybe-uninitialized] 298 | ncm->next = new CvMembList(); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ocjump.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocjump.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ppshape.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ppshape.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp: In function 'void pr_memb(int, Memb_list*, int*, NrnThread&, FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp:30:7: warning: unused variable 'psize' [-Wunused-variable] 30 | int psize = nrn_prop_dparam_size_[type]; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/pysecname2sec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 33%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/partrans.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/partrans.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: In function 'void nrn_partrans_update_ptrs()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:373:16: warning: variable 'n' set but not used [-Wunused-but-set-variable] 373 | int i, n; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:692: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp: In function 'void rendezvous_rank_get(int*, int, int*&, int*&, int*&, int*&, int*&, int*&, int (*)(int))': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp:68:7: warning: unused variable 'rank' [-Wunused-variable] 68 | int rank = nrnmpi_myid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp: In function 'void have_to_want(int*, int, int*, int, int*&, int*&, int*&, int*&, int*&, int*&, int (*)(int))': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp:105:7: warning: unused variable 'rank' [-Wunused-variable] 105 | int rank = nrnmpi_myid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:329:13: warning: 'void check_pointers()' defined but not used [-Wunused-function] 329 | static void check_pointers() { | ^~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/rotate3d.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/secbrows.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:8, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:18: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'OcSectionBrowser::OcSectionBrowser(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:131:32: warning: unused variable 'sec' [-Wunused-variable] 131 | ForAllSections(sec) //{ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:314:48: note: in definition of macro 'ForAllSections' 314 | ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'SectionBrowserImpl::SectionBrowserImpl()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:365:24: warning: unused variable 'sec' [-Wunused-variable] 365 | ForAllSections(sec) //{ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:314:48: note: in definition of macro 'ForAllSections' 314 | ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'SectionBrowser::SectionBrowser()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:392:20: warning: unused variable 'lk' [-Wunused-variable] 392 | LayoutKit& lk = *LayoutKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:393:20: warning: unused variable 'wk' [-Wunused-variable] 393 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In static member function 'static void SectionBrowser::make_section_browser()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:440:20: warning: unused variable 'wk' [-Wunused-variable] 440 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In static member function 'static void PointProcessBrowser::make_point_process_browser(OcList*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:500:20: warning: unused variable 'wk' [-Wunused-variable] 500 | WidgetKit& wk = *WidgetKit::instance(); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 34%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/savstate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/savstate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'virtual void SaveState::read(OcFile*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:735:33: note: in expansion of macro 'ASSERTfread' 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:739:33: note: in expansion of macro 'ASSERTfread' 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:747:33: note: in expansion of macro 'ASSERTfread' 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:751:33: note: in expansion of macro 'ASSERTfread' 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:767:17: note: in expansion of macro 'ASSERTfread' 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'virtual void SaveState::write(OcFile*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:800:33: note: in expansion of macro 'ASSERTfwrite' 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:803:33: note: in expansion of macro 'ASSERTfwrite' 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:810:33: note: in expansion of macro 'ASSERTfwrite' 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:813:33: note: in expansion of macro 'ASSERTfwrite' 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:821:17: note: in expansion of macro 'ASSERTfwrite' 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::readnet(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:939:25: note: in expansion of macro 'ASSERTfread' 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:947:17: note: in expansion of macro 'ASSERTfread' 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:965:17: note: in expansion of macro 'ASSERTfread' 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::writenet(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1010:25: note: in expansion of macro 'ASSERTfwrite' 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1011 | } | ~ 1012 | } | ~ 1013 | fprintf(f, "%d\n", npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1014 | if (npss_) { | ~~~~~~~~~~~~ 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1015:17: note: in expansion of macro 'ASSERTfwrite' 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1011 | } | ~ 1012 | } | ~ 1013 | fprintf(f, "%d\n", npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1014 | if (npss_) { | ~~~~~~~~~~~~ 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1016 | } | ~ 1017 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 1018 | fprintf(f, "%d\n", n); | ~~~~~~~~~~~~~~~~~~~~~~ 1019 | if (n) { | ~~~~~~~~ 1020 | ASSERTfwrite((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1020:17: note: in expansion of macro 'ASSERTfwrite' 1020 | ASSERTfwrite((char*)tqs_->tdeliver, sizeof(double), n, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::allocnet()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1079:16: warning: unused variable 'n' [-Wunused-variable] 1079 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void OcShape::select_section(Section*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:743:18: warning: unused variable 's' [-Wunused-variable] 743 | Section* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:744:22: warning: unused variable 'c' [-Wunused-variable] 744 | const Color* c; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::observe(SectionList*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:832:23: warning: unused variable 'cnt' [-Wunused-variable] 832 | GlyphIndex i, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::transform3d(Rubberband*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1000:15: warning: unused variable 'x' [-Wunused-variable] 1000 | Coord x, y; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1000:18: warning: unused variable 'y' [-Wunused-variable] 1000 | Coord x, y; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::wholeplot(ivCoord&, ivCoord&, ivCoord&, ivCoord&) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1025:17: warning: unused variable 'j' [-Wunused-variable] 1025 | long i, j, n = sg_->count(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In destructor 'virtual ShapeSection::~ShapeSection()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1294:13: warning: unused variable 'n' [-Wunused-variable] 1294 | int n = sec_->npt3d -1; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::set_range_variable(Symbol*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1514:14: warning: variable 'any' set but not used [-Wunused-but-set-variable] 1514 | bool any = false; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::draw(ivCanvas*, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1554:15: warning: unused variable 'e' [-Wunused-variable] 1554 | float e = 1e-2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::fast_draw(ivCanvas*, ivCoord, ivCoord, bool) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1612:16: warning: variable 'a3dold' set but not used [-Wunused-but-set-variable] 1612 | double a3dold; // the arc length at i3d-1 | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'void ShapeSection::fastidious_draw(ivCanvas*, const ivColor*, int, float, float) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1698:15: warning: unused variable 'len' [-Wunused-variable] 1698 | float len, f1, f2, d, x1, x2, y1, y2, a, aa; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'ShapeSection::fast_draw(ivCanvas*, float, float, bool) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1631:54: warning: 'cv' may be used uninitialized in this function [-Wmaybe-uninitialized] 1631 | color = cv->get_color(*pvar_[iseg]); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'ShapeSection::arc_position(float, float) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:2003:51: warning: 'ic' may be used uninitialized in this function [-Wmaybe-uninitialized] 2003 | len = MyMath::norm2(x_[ic] - x_[ic+1], y_[ic] - y_[ic+1]); | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/shape.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/shape.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/singlech.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/singlech.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 35%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/splitcell.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp: In member function 'ivGlyph* ColorValue::make_glyph()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp:1108:20: warning: unused variable 'wk' [-Wunused-variable] 1108 | WidgetKit& wk = *WidgetKit::instance(); | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:13, from /builddir/build/BUILD/nrn-7.8.1/src/oc/classreg.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp: In member function 'Hinton::request(ivRequisition&) const': /builddir/build/BUILD/nrn-7.8.1/src/oc/hocassrt.h:19:22: warning: 'nonnull' argument 'this' compared to NULL [-Wnonnull-compare] 19 | # define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp: In member function 'RangeVarPlot::fill_pointers()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp:531:24: warning: 'sym' may be used uninitialized in this function [-Wmaybe-uninitialized] 531 | does_exist = nrn_exists(sym, node_exact(sec, hoc_ac_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp: In function 'void splitcell_compute()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp:109:13: warning: unused variable 'i' [-Wunused-variable] 109 | int i; | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 36%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/symdir.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/symdir.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/symdir.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/symdir.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp: In constructor 'SymDirectory::SymDirectory(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp:172:13: warning: unused variable 'suffix' [-Wunused-variable] 172 | int suffix = '.'; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp: In member function 'void SymDirectoryImpl::load_section()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp:549:13: warning: unused variable 'n' [-Wunused-variable] 549 | int n = sec->nnode; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 36%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/tqueue.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp:391, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:133, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c: In function 'TQItem* sptq_spenq(TQItem*, SPTREE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c:104:18: warning: unused variable 'Sct' [-Wunused-variable] 104 | register int Sct; /* Strcmp value */ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c: In function 'TQItem* sptq_spenqprior(TQItem*, SPTREE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c:329:18: warning: unused variable 'Sct' [-Wunused-variable] 329 | register int Sct; /* Strcmp value */ | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:133, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp:56:13: warning: 'void chk(TQItem*, int)' defined but not used [-Wunused-function] 56 | static void chk(TQItem* b, int level) { | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 36%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/vrecord.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/vrecord.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/capac.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c: In function 'activclamp_lhs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c:180:16: warning: unused variable 'v' [-Wunused-variable] 180 | double v; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'nrn_rootnode_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:1654:18: warning: unused variable 'nde' [-Wunused-variable] 1654 | Extnode* nde; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'ismembrane': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:2254:15: warning: unused variable 'p' [-Wunused-variable] 2254 | Prop *p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'section_exists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:2466:21: warning: unused variable 'cp' [-Wunused-variable] 2466 | char *str, *cp, buf[100]; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:25:28: warning: missing braces around initializer [-Wmissing-braces] 25 | static DoubScal scdoub[] = { /* just a template*/ | ^ 26 | "ci0_na_ion", 0, | { } 27 | "co0_na_ion", 0, | { } 28 | 0, 0 | { 29 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'ion_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:521:16: warning: unused variable 'vnode' [-Wunused-variable] 521 | Node** vnode = ml->nodelist; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'ion_init': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:543:16: warning: unused variable 'vnode' [-Wunused-variable] 543 | Node** vnode = ml->nodelist; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'second_order_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:605:13: warning: unused variable 'j' [-Wunused-variable] 605 | int j, i, i2; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:26:33: warning: missing braces around initializer [-Wmissing-braces] 26 | static HocParmLimits limits[] = { | ^ 27 | "xraxial", 1e-9, 1e15, | { { }} 28 | "xg", 0., 1e15, | { { }} 29 | "xc", 0., 1e15, | { { }} 30 | 0,0.,0. | { { 31 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:33:31: warning: missing braces around initializer [-Wmissing-braces] 33 | static HocParmUnits units[] = { | ^ 34 | "xraxial", "MOhm/cm", | { } 35 | "xg", "S/cm2", | { } 36 | "xc", "uF/cm2", | { } 37 | "e_extracellular", "mV", | { } 38 | "vext", "mV", | { } 39 | "i_membrane", "mA/cm2", | { } 40 | 0,0 | { 41 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'nrn_update_2d': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:94:16: warning: variable 'cfac' set but not used [-Wunused-but-set-variable] 94 | double cfac; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:90:20: warning: unused variable 'secondorder' [-Wunused-variable] 90 | extern int secondorder; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'extcell_node_create': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:197:13: warning: unused variable 'i' [-Wunused-variable] 197 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'extcell_2d_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:240:15: warning: unused variable 'p' [-Wunused-variable] 240 | Prop* p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:239:18: warning: unused variable 'nde' [-Wunused-variable] 239 | Extnode *nde; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:238:15: warning: unused variable 'nd' [-Wunused-variable] 238 | Node *nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:237:16: warning: unused variable 'j' [-Wunused-variable] 237 | int i, j; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_pop_defer': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:237:17: warning: unused variable 'obj' [-Wunused-variable] 237 | Object* obj; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'frameobj_clean': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:273:16: warning: unused variable 'narg' [-Wunused-variable] 273 | int i, narg; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_Argtype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1509:13: warning: unused variable 'narg' [-Wunused-variable] 1509 | int narg, iarg, type, itype=0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_autoobject': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1760:18: warning: unused variable 'obp' [-Wunused-variable] 1760 | Object **obp; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1758:13: warning: unused variable 'i' [-Wunused-variable] 1758 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_delete_symbol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:2507:14: warning: unused variable 'sp' [-Wunused-variable] 2507 | * sp; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_daspk_init_step': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:284:13: warning: unused variable 'i' [-Wunused-variable] 284 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_fixed_step': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:301:13: warning: unused variable 'i' [-Wunused-variable] 301 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'fcurrent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:607:13: warning: unused variable 'i' [-Wunused-variable] 607 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_ba': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:1015:21: warning: unused variable 'type' [-Wunused-variable] 1015 | int type = tbl->bam->type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_finitialize': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:783:9: warning: '_nt' is used uninitialized [-Wuninitialized] 783 | nrn_random_play(_nt); | ^~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fstim.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c: In function 'fit_praxis': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c:101:32: warning: variable 'nvarsav' set but not used [-Wunused-but-set-variable] 101 | long int printmodesav, nvarsav; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c: In function 'efun': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c:279:13: warning: unused variable 'i' [-Wunused-variable] 279 | int i; | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocusr.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hocusr.c:9, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocusr.c:6: /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:32:30: warning: missing braces around initializer [-Wmissing-braces] 32 | static VoidFunc function[] = { | ^ 33 | 34 | "node_data", node_data, | { } 35 | "disconnect", disconnect, | { } 36 | "batch_run", batch_run, | { } 37 | "batch_save", batch_save, | { } 38 | "pt3dclear", pt3dclear, | { } 39 | "pt3dadd", pt3dadd, | { } 40 | "n3d", n3d, | { } 41 | "x3d", x3d, | { } 42 | "y3d", y3d, | { } 43 | "z3d", z3d, | { } 44 | "arc3d", arc3d, | { } 45 | "diam3d", diam3d, | { } 46 | "pt3dinsert", pt3dinsert, | { } 47 | "pt3dremove", pt3dremove, | { } 48 | "pt3dchange", pt3dchange, | { } 49 | "define_shape", define_shape, | { } 50 | "pt3dconst", pt3dconst, | { } 51 | "pt3dstyle", pt3dstyle, | { } 52 | "spine3d", spine3d, | { } 53 | "setSpineArea", setSpineArea, | { } 54 | "getSpineArea", getSpineArea, | { } 55 | "area", area, | { } 56 | "ri", ri, | { } 57 | "initnrn", initnrn, | { } 58 | "topology", nrnhoc_topology, | { } 59 | "fadvance", fadvance, | { } 60 | "distance", distance, | { } 61 | "finitialize", finitialize, | { } 62 | "fstim", fstim, | { } 63 | "fstimi", fstimi, | { } 64 | "ion_style", ion_style, | { } 65 | "ion_register", ion_register, | { } 66 | "ion_charge", ion_charge, | { } 67 | "nernst", nernst, | { } 68 | "ghk", ghk, | { } 69 | "section_owner", section_owner, | { } 70 | "make_mechanism", make_mechanism, | { } 71 | "make_pointprocess", make_pointprocess, | { } 72 | "nrnpython", nrnpython, | { } 73 | "fsyn", fsyn, | { } 74 | "fsyng", fsyng, | { } 75 | "fsyni", fsyni, | { } 76 | "fclamp", fclamp, | { } 77 | "fclampi", fclampi, | { } 78 | "fclampv", fclampv, | { } 79 | "prstim", prstim, | { } 80 | "fcurrent", fcurrent, | { } 81 | "fmatrix", fmatrix, | { } 82 | "frecord_init", frecord_init, | { } 83 | "issection", issection, | { } 84 | "ismembrane", ismembrane, | { } 85 | "sectionname", sectionname, | { } 86 | "psection", psection, | { } 87 | "pop_section", pop_section, | { } 88 | "push_section", push_section, | { } 89 | "section_exists", section_exists, | { } 90 | "delete_section", delete_section, | { } 91 | "fit_praxis", fit_praxis, | { } 92 | "attr_praxis", attr_praxis, | { } 93 | "pval_praxis", pval_praxis, | { } 94 | "stop_praxis", stop_praxis, | { } 95 | "keep_nseg_parm", keep_nseg_parm, | { } 96 | "nrnallsectionmenu", nrnallsectionmenu, | { } 97 | "nrnallpointmenu", nrnallpointmenu, | { } 98 | "nrnsecmenu", nrnsecmenu, | { } 99 | "nrnglobalmechmenu", nrnglobalmechmenu, | { } 100 | "nrnmechmenu", nrnmechmenu, | { } 101 | "nrnpointmenu", nrnpointmenu, | { } 102 | "this_section", this_section, | { } 103 | "this_node", this_node, | { } 104 | "parent_section", parent_section, | { } 105 | "parent_node", parent_node, | { } 106 | "parent_connection", parent_connection, | { } 107 | "section_orientation", section_orientation, | { } 108 | 0, 0 | { 109 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:114:13: warning: missing braces around initializer [-Wmissing-braces] 114 | } scint[] = { | ^ 115 | 116 | "secondorder", &secondorder, | { } 117 | "diam_changed", &diam_changed, | { } 118 | "nrn_shape_changed_", &nrn_shape_changed_, | { } 119 | "nrn_netrec_state_adjust", &nrn_netrec_state_adjust, | { } 120 | "nrn_sparse_partrans", &nrn_sparse_partrans, | { } 121 | "stoprun", &stoprun, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:129:12: warning: missing braces around initializer [-Wmissing-braces] 129 | } vint[] = { | ^ 130 | 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:137:15: warning: missing braces around initializer [-Wmissing-braces] 137 | } scfloat[] = { | ^ 138 | 139 | 0, 0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:146:14: warning: missing braces around initializer [-Wmissing-braces] 146 | } vfloat[] = { | ^ 147 | 148 | 0,0,0 | { 149 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:152:21: warning: missing braces around initializer [-Wmissing-braces] 152 | DoubScal scdoub[] = { | ^ 153 | 154 | "clamp_resist", &clamp_resist, | { } 155 | "celsius", &celsius, | { } 156 | 0,0 | { 157 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:160:19: warning: missing braces around initializer [-Wmissing-braces] 160 | DoubVec vdoub[] = { | ^ 161 | 162 | 0, 0, 0 | { 163 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:170:14: warning: missing braces around initializer [-Wmissing-braces] 170 | } ardoub[] = { | ^ 171 | 172 | 0, 0, 0, 0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:181:15: warning: missing braces around initializer [-Wmissing-braces] 181 | } thredim[] = { | ^ 182 | 183 | 0, 0, 0, 0, 0 | { 184 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_init.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_init.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:34:16: warning: missing braces around initializer [-Wmissing-braces] 34 | } keywords[] = { | ^ 35 | "proc", parsePROC, | { } 36 | "func", FUNC, | { } 37 | "obfunc", HOCOBJFUNC, | { } 38 | "return", RETURN, | { } 39 | "break", BREAK, | { } 40 | "continue", CONTINUE, | { } 41 | "stop", STOPSTMT, | { } 42 | "if", IF, | { } 43 | "else", ELSE, | { } 44 | "while", WHILE, | { } 45 | "for", FOR, | { } 46 | "print", PRINT, | { } 47 | "delete", parseDELETE, | { } 48 | "read", READ, | { } 49 | "debug", DEBUG, | { } 50 | "double", parseDOUBLE, | { } 51 | "em", EDIT, | { } 52 | "depvar", DEPENDENT, | { } 53 | "eqn", EQUATION, | { } 54 | "local", LOCAL, | { } 55 | "localobj", LOCALOBJ, | { } 56 | "strdef", STRDEF, | { } 57 | "parallel", PARALLEL, | { } 58 | "help", HELP, | { } 59 | "iterator", ITERKEYWORD, | { } 60 | "iterator_statement", ITERSTMT, | { } 61 | #if CABLE 62 | "create", SECTIONKEYWORD, | { } 63 | "connect", CONNECTKEYWORD, | { } 64 | "setpointer", SETPOINTERKEYWORD, | { } 65 | "access", ACCESSKEYWORD, | { } 66 | "insert", INSERTKEYWORD, | { } 67 | "uninsert", UNINSERTKEYWORD, | { } 68 | "forall", FORALL, | { } 69 | "ifsec", IFSEC, | { } 70 | "forsec", FORSEC, | { } ...... 73 | "begintemplate", BEGINTEMPLATE, | { } 74 | "endtemplate", ENDTEMPLATE, | { } 75 | "objectvar", OBJVARDECL, | { } 76 | "objref", OBJVARDECL, | { } 77 | "public", PUBLICDECL, | { } 78 | "external", EXTERNALDECL, | { } 79 | "new", NEW, | { } 80 | #endif 81 | 0, 0 | { 82 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:86:14: warning: missing braces around initializer [-Wmissing-braces] 86 | } consts[] = { | ^ 87 | "PI", 3.14159265358979323846, | { } 88 | "E", 2.71828182845904523536, | { } 89 | "GAMMA",0.57721566490153286060, /* Euler */ | { } 90 | "DEG", 57.29577951308232087680, /* deg/radian */ | { } 91 | "PHI", 1.61803398874989484820, /* golden ratio */ | { } 92 | #if defined(LegacyFR) && LegacyFR == 1 93 | "FARADAY", 96485.309, /*coulombs/mole*/ | { } 94 | "R", 8.31441, /*molar gas constant, joules/mole/deg-K*/ | { } ...... 101 | 0, 0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:107:16: warning: missing braces around initializer [-Wmissing-braces] 107 | } builtins[] = { | ^ 108 | "sin", sin, | { } 109 | "cos", cos, | { } 110 | "atan", atan, | { } 111 | "tanh", tanh, | { } 112 | "log", Log, /* checks argument */ | { } 113 | "log10",Log10, /* checks argument */ | { } 114 | "exp", hoc1_Exp, /* checks argument */ | { } 115 | "sqrt", Sqrt, /* checks argument */ | { } 116 | "int", integer, | { } ...... 122 | "abs", fabs, | { } 123 | "erf", erf, | { } 124 | "erfc", erfc, | { } 125 | #endif 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:131:17: warning: missing braces around initializer [-Wmissing-braces] 131 | } fun_bltin[] = { | ^ 132 | "atan2", hoc_atan2, | { } 133 | "system", hoc_System, | { } 134 | "prmat", hoc_Prmat, | { } 135 | "solve", hoc_solve, | { } 136 | "eqinit", hoc_eqinit, | { } 137 | "plt", hoc_Plt, | { } 138 | "axis", hoc_axis, | { } 139 | "plot", hoc_Plot, | { } 140 | "plotx", hoc_plotx, | { } 141 | "ploty", hoc_ploty, | { } 142 | "regraph", hoc_regraph, | { } 143 | "symbols", hoc_symbols, | { } 144 | "printf", hoc_PRintf, | { } 145 | "xred", hoc_Xred, | { } 146 | "sred", hoc_Sred, | { } 147 | "ropen", hoc_ropen, | { } 148 | "wopen", hoc_wopen, | { } 149 | "xopen", hoc_xopen, | { } 150 | "hoc_stdout", hoc_stdout, | { } 151 | "chdir", hoc_Chdir, | { } 152 | "fprint", hoc_Fprint, | { } 153 | "fscan", hoc_Fscan, | { } 154 | "sscanf", hoc_sscanf, | { } 155 | "sprint", hoc_Sprint, | { } 156 | "graph", hoc_Graph, | { } 157 | "graphmode", hoc_Graphmode, | { } 158 | "fmenu", hoc_fmenu, | { } 159 | "lw", hoc_Lw, | { } 160 | "getstr", hoc_Getstr, | { } 161 | "strcmp", hoc_Strcmp, | { } 162 | "setcolor", hoc_Setcolor, | { } 163 | "startsw", hoc_startsw, | { } 164 | "stopsw", hoc_stopsw, | { } 165 | "object_id", hoc_object_id, | { } 166 | "allobjectvars", hoc_allobjectvars, | { } 167 | "allobjects", hoc_allobjects, | { } 168 | "xpanel", hoc_xpanel, | { } 169 | "xbutton", hoc_xbutton, | { } 170 | "xcheckbox", hoc_xcheckbox, | { } 171 | "xstatebutton", hoc_xstatebutton, | { } 172 | "xlabel", hoc_xlabel, | { } 173 | "xmenu", hoc_xmenu, | { } 174 | "xvalue", hoc_xvalue, | { } 175 | "xpvalue", hoc_xpvalue, | { } 176 | "xradiobutton", hoc_xradiobutton, | { } 177 | "xfixedvalue", hoc_xfixedvalue, | { } 178 | "xvarlabel", hoc_xvarlabel, | { } 179 | "xslider", hoc_xslider, | { } 180 | "boolean_dialog", hoc_boolean_dialog, | { } 181 | "continue_dialog", hoc_continue_dialog, | { } 182 | "string_dialog", hoc_string_dialog, | { } 183 | "doEvents", hoc_single_event_run, | { } 184 | "doNotify", hoc_notify_iv, | { } 185 | "nrniv_bind_thread", nrniv_bind_thread, | { } 186 | "ivoc_style", ivoc_style, | { } 187 | "numarg", hoc_Numarg, | { } 188 | "argtype", hoc_Argtype, | { } 189 | "hoc_pointer_", hoc_pointer, /* for internal use */ | { } 190 | "nrn_mallinfo", hoc_mallinfo, | { } 191 | "execute", hoc_exec_cmd, | { } 192 | "execute1", hoc_execute1, | { } 193 | "load_proc", hoc_load_proc, | { } 194 | "load_func", hoc_load_func, | { } 195 | "load_template", hoc_load_template, | { } 196 | "load_file", hoc_load_file, | { } 197 | "load_java", hoc_load_java, | { } 198 | "unix_mac_pc", hoc_unix_mac_pc, | { } 199 | "show_winio", hoc_show_winio, | { } 200 | "nrn_load_dll", hoc_nrn_load_dll, | { } 201 | "machine_name", hoc_machine_name, | { } 202 | "saveaudit", hoc_Saveaudit, | { } 203 | "retrieveaudit", hoc_Retrieveaudit, | { } 204 | "coredump_on_error", hoc_coredump_on_error, | { } 205 | "checkpoint", hoc_checkpoint, | { } 206 | "quit", hoc_quit, | { } 207 | "object_push", hoc_object_push, | { } 208 | "object_pop", hoc_object_pop, | { } 209 | "pwman_place", hoc_pwman_place, | { } 210 | "save_session", hoc_save_session, | { } 211 | "print_session", hoc_print_session, | { } 212 | "show_errmess_always", hoc_show_errmess_always, | { } 213 | "execerror", hoc_Execerror, | { } 214 | "variable_domain", hoc_Symbol_limits, | { } 215 | "name_declared", hoc_name_declared, | { } 216 | "use_mcell_ran4", hoc_usemcran4, | { } 217 | "mcell_ran4", hoc_mcran4, | { } 218 | "mcell_ran4_init", hoc_mcran4init, | { } 219 | "nrn_feenableexcept", nrn_feenableexcept, | { } 220 | "nrnmpi_init", hoc_nrnmpi_init, | { } ...... 232 | 0, 0 | { 233 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:238:20: warning: missing braces around initializer [-Wmissing-braces] 238 | } strfun_bltin[] = { | ^ 239 | "secname", hoc_secname, | { } 240 | "units", hoc_Symbol_units, | { } 241 | "neuronhome", hoc_neuronhome, | { } 242 | "getcwd", hoc_getcwd, | { } 243 | "nrnversion", hoc_nrnversion, | { } 244 | 0, 0 | { 245 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:250:20: warning: missing braces around initializer [-Wmissing-braces] 250 | } objfun_bltin[] = { | ^ 251 | "object_pushed", hoc_object_pushed, | { } 252 | 0, 0 | { 253 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c: In function 'hoc_show_winio': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:355:9: warning: variable 'b' set but not used [-Wunused-but-set-variable] 355 | int b; | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:22: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabvars.h:8:15: warning: missing braces around initializer [-Wmissing-braces] 8 | } usrprop[] = { | ^ 9 | "nseg", 0, 0, | { } 10 | "L", 1, 2, | { } 11 | "rallbranch", 1, 4, | { } 12 | "Ra", 1, 7, | { } 13 | 0, 0, 0 | { 14 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:109:43: warning: missing braces around initializer [-Wmissing-braces] 109 | static HocParmLimits _hoc_parm_limits[] = { | ^ 110 | "Ra", 1e-6, 1e9, | { { }} 111 | "L", 1e-4, 1e20, | { { }} 112 | "diam", 1e-9, 1e9, | { { }} 113 | "cm", 0., 1e9, | { { }} 114 | "rallbranch", 1., 1e9, | { { }} 115 | "nseg", 1., 1e9, | { { }} 116 | "celsius", -273., 1e6, | { { }} 117 | "dt", 1e-9, 1e15, | { { }} 118 | 0, 0., 0. | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:121:41: warning: missing braces around initializer [-Wmissing-braces] 121 | static HocParmUnits _hoc_parm_units[] = { | ^ 122 | "Ra", "ohm-cm", | { } 123 | "L", "um", | { } 124 | "diam", "um", | { } 125 | "cm", "uF/cm2", | { } 126 | "celsius", "degC", | { } 127 | "dt", "ms", | { } 128 | "t", "ms", | { } 129 | "v", "mV", | { } 130 | "i_cap", "mA/cm2", | { } 131 | 0, 0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:287:28: warning: missing braces around initializer [-Wmissing-braces] 287 | static DoubScal scdoub[] = { | ^ 288 | "t", &t, | { } 289 | "dt", &dt, | { } 290 | 0,0 | { 291 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_newobj': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:612:25: warning: unused variable 'o' [-Wunused-variable] 612 | Object* o = hoc_obj_look_inside_stack(narg); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:594:16: warning: unused variable 'total' [-Wunused-variable] 594 | int i, total; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:594:13: warning: unused variable 'i' [-Wunused-variable] 594 | int i, total; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:593:23: warning: unused variable 's' [-Wunused-variable] 593 | Symbol *sym, *s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:592:21: warning: unused variable 'obd' [-Wunused-variable] 592 | Objectdata *obd; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_cmp_otype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:804:13: warning: variable 'type' set but not used [-Wunused-but-set-variable] 804 | int type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_known_type': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:809:13: warning: variable 'type' set but not used [-Wunused-but-set-variable] 809 | int type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_name2obj': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:881:14: warning: unused variable 'buf' [-Wunused-variable] 881 | char buf[200]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_ob_pointer': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1275:17: warning: unused variable 'sym' [-Wunused-variable] 1275 | Symbol* sym; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'java2nrn_class': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1563:48: warning: unused variable 'buf' [-Wunused-variable] 1563 | char mname[256], signature[256], *cn, *buf; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1676:56: warning: '%s' directive writing up to 255 bytes into a region of size between 253 and 255 [-Wformat-overflow=] 1676 | sprintf(mname + strlen(mname), "%ld%s", | ^~~~~~~ 1677 | strlen(signature), signature); | ~~~~~~~~~ In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/oc/classreg.h:3, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:3, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c:6: /usr/include/bits/stdio2.h:38:10: note: '__sprintf_chk' output between 2 and 259 bytes into a destination of size 256 38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'longdifus_diamchange': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:46: warning: variable 'vnodecount' set but not used [-Wunused-but-set-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:31: warning: unused variable 'index' [-Wunused-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:28: warning: unused variable 'j' [-Wunused-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'longdifusalloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:192:19: warning: unused variable 'qsec' [-Wunused-variable] 192 | hoc_Item* qsec; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:191:15: warning: unused variable 'nd' [-Wunused-variable] 191 | Node* nd, *pnd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:31: warning: unused variable 'index' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:23: warning: unused variable 'mpi' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:19: warning: unused variable 'mi' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'stagger': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:369:21: warning: unused variable 'mi' [-Wunused-variable] 369 | int mi = pld->mindex[i]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:329:31: warning: unused variable 'dx' [-Wunused-variable] 329 | double dc, vol, dfdi, dx; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:329:20: warning: unused variable 'vol' [-Wunused-variable] 329 | double dc, vol, dfdi, dx; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:328:19: warning: variable 'di' set but not used [-Wunused-but-set-variable] 328 | int i, n, di; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'ode': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:401:20: warning: unused variable 'vol' [-Wunused-variable] 401 | double dc, vol, dfdi; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:459:20: warning: unused variable 'vol' [-Wunused-variable] 459 | double dc, vol, dfdi; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/method3.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnnemo.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrntimeout.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c: In function 'nrn_version': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:54:12: warning: unused variable 'size' [-Wunused-variable] 54 | int j, size; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:29:7: warning: unused variable 'b' [-Wunused-variable] 29 | int b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:28:9: warning: unused variable 'cp' [-Wunused-variable] 28 | char *cp; | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c: In function 'pas_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c:31:17: warning: unused variable 'vpdata' [-Wunused-variable] 31 | Datum **vpdata = ml->pdata; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c: In function 'pas_jacob': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c:45:17: warning: unused variable 'vpdata' [-Wunused-variable] 45 | Datum **vpdata = ml->pdata; | ^~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/psection.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/point.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_rename': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:81:24: warning: unused variable 'hoc_thisobject' [-Wunused-variable] 81 | extern Object* hoc_thisobject, **hoc_objgetarg(); | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_nchild': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:230:13: warning: unused variable 'n' [-Wunused-variable] 230 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_has_parent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:236:13: warning: unused variable 'n' [-Wunused-variable] 236 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_has_trueparent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:246:13: warning: unused variable 'n' [-Wunused-variable] 246 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_exists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:256:13: warning: unused variable 'n' [-Wunused-variable] 256 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:275:32: warning: missing braces around initializer [-Wmissing-braces] 275 | static Member_func members[] = { | ^ 276 | "sec", s_rename, /* will actually become a SECTIONREF below */ | { } 277 | "parent", s_rename, | { } 278 | "trueparent", s_rename, | { } 279 | "root", s_rename, | { } 280 | "child", s_rename, | { } 281 | "nchild", s_nchild, | { } 282 | "has_parent", s_has_parent, | { } 283 | "has_trueparent", s_has_trueparent, | { } 284 | "exists", s_exists, | { } 285 | "rename", s_rename, | { } 286 | "unname", s_unname, | { } 287 | "is_cas", s_cas, | { } 288 | 0, 0 | { 289 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c: In function 'wholetree': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:31: warning: unused variable 'last' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:23: warning: unused variable 'first' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:19: warning: unused variable 'j' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:15: warning: unused variable 'i' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:123:28: warning: unused variable 'ch' [-Wunused-variable] 123 | Section* s, *sec, *ch; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:254:32: warning: missing braces around initializer [-Wmissing-braces] 254 | static Member_func members[] = { | ^ 255 | "append", append, | { } 256 | "remove", seclist_remove, | { } 257 | "wholetree", wholetree, | { } 258 | "subtree", subtree, | { } 259 | "children", children, | { } 260 | "unique", unique, | { } 261 | "printnames", printnames, | { } 262 | "contains", contains, | { } 263 | "allroots", allroots, | { } 264 | 0,0 | { 265 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/synapse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'node_destruct': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:648:15: warning: unused variable 'nd' [-Wunused-variable] 648 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'node_realloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:724:29: warning: unused variable 'i' [-Wunused-variable] 724 | int n1, n2, i1, i2, i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:710:14: warning: 'node_interp' defined but not used [-Wunused-function] 710 | static Node* node_interp(Node* nd1, Node* nd2, double frac) | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'distance': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:271:21: warning: 'my_origin_node' may be used uninitialized in this function [-Wmaybe-uninitialized] 271 | d = topol_distance(my_origin_sec, my_origin_node, sec, node, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | &sec, &node ); | ~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/isaac64.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c: In function 'nrnRan4dbl': /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c:163:23: warning: unused variable 'extra' [-Wunused-variable] 163 | uint32_t hi, lo, extra; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c:163:19: warning: unused variable 'lo' [-Wunused-variable] 163 | uint32_t hi, lo, extra; | ^~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnisaac.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c: In function 'nrnran123_ipick': /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c:75:28: warning: array subscript has type 'char' [-Wchar-subscripts] 75 | rval = s->r.v[which++]; | ~~~~~^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:2: In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '*fgets' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^~~ In file included from /usr/include/features.h:473, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdio.h:27, from /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:2: /usr/include/bits/stdio2.h:251:14: note: in a call to function '*fgets' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_lhs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:481:24: warning: variable 'neqn' set but not used [-Wunused-but-set-variable] 481 | int i, neqn; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:481:21: warning: unused variable 'i' [-Wunused-variable] 481 | int i, neqn; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'connection_coef': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:816:15: warning: unused variable 'p' [-Wunused-variable] 816 | Prop *p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:32: warning: unused variable 'ra' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:20: warning: unused variable 'diam' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:16: warning: unused variable 'dx' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'pt3dinsert': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1118:13: warning: unused variable 'i' [-Wunused-variable] 1118 | int i, n, i0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'pt3dremove': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1169:13: warning: unused variable 'i' [-Wunused-variable] 1169 | int i, i0, n; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'setaffinity': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:288:13: warning: unused variable 'mask' [-Wunused-variable] 288 | int mask; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'reorder_secorder': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:879:26: warning: unused variable 'i' [-Wunused-variable] 879 | int order, isec, i, j, inode; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'nrn_how_many_processors': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:1288:13: warning: unused variable 'i' [-Wunused-variable] 1288 | int i, ip; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'v_setup_vectors': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1605:15: warning: unused variable 'nd' [-Wunused-variable] 1605 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1604:18: warning: unused variable 'sec' [-Wunused-variable] 1604 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1603:13: warning: unused variable 'isec' [-Wunused-variable] 1603 | int isec; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_modeltype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1914:26: warning: unused variable 'lm' [-Wunused-variable] 1914 | static Template* lm = (Template*)0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_matrix_node_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1979:15: warning: unused variable 'nd' [-Wunused-variable] 1979 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1978:16: warning: unused variable 'b' [-Wunused-variable] 1978 | int i, b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_recalc_node_ptrs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:2204:24: warning: unused variable 'd' [-Wunused-variable] 2204 | Datum* d; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1914:26: warning: 'lm' defined but not used [-Wunused-variable] 1914 | static Template* lm = (Template*)0; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:268:13: warning: 'wait_for_workers_timeit' defined but not used [-Wunused-function] 268 | static void wait_for_workers_timeit() { | ^~~~~~~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/bksub.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/axis.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/cygwinprt.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/code2.c /builddir/build/BUILD/nrn-7.8.1/src/oc/code2.c:516:16: warning: missing braces around initializer [-Wmissing-braces] 516 | } type_sym[] = { | ^ 517 | "Builtins", BLTIN, | { } 518 | "Other Builtins", FUN_BLTIN, | { } 519 | "Functions", FUNCTION, | { } 520 | "Procedures", PROCEDURE, | { } 521 | "Undefined", UNDEF, | { } 522 | "Scalars", VAR, | { } 523 | 0, 0 | { 524 | }; | } make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/debug.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/fmenu.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c: In function 'hoc_stdout': /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:78:21: warning: unused variable 'i' [-Wunused-variable] 78 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c: In function 'hoc_Load_file': /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:727:29: warning: unused variable 'i' [-Wunused-variable] 727 | int i; | ^ In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:15, from /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:8: In function 'strncpy', inlined from 'hoc_Load_file' at /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:704:2: /usr/include/bits/string_fortified.h:95:10: warning: 'strncpy' specified bound 1024 equals destination size [-Wstringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ftime.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/functabl.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/getelm.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/getsym.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/hocedit.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/isoc99.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/lineq.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/list.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'hoc_oc': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:1414:15: warning: unused variable 'cp' [-Wunused-variable] 1414 | char *cp; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'hoc_get_line': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:1850:44: warning: unused variable 'hoc_notify_stop' [-Wunused-variable] 1850 | extern int hoc_notify_stop; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'matherr1': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:75:1: warning: control reaches end of non-void function [-Wreturn-type] 75 | } | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/math.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c: In function 'hoc_errno_check': /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c:118:13: warning: unused variable 'ierr' [-Wunused-variable] 118 | int ierr; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnfilewrap.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nonlin.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ocerf.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/parallel.c /builddir/build/BUILD/nrn-7.8.1/src/oc/parallel.c:26:14: warning: 'parallel_envp' defined but not used [-Wunused-variable] 26 | static char *parallel_envp; | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/plot.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/plt.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/prmat.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c: In function 'advance': /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:383:41: warning: array subscript has type 'char' [-Wchar-subscripts] 383 | start = int_range_start[*ep]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:384:39: warning: array subscript has type 'char' [-Wchar-subscripts] 384 | stop = int_range_stop[*ep++]; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:415:26: warning: array subscript has type 'char' [-Wchar-subscripts] 415 | braslist[*ep++] = lp; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:419:26: warning: array subscript has type 'char' [-Wchar-subscripts] 419 | braelist[*ep++] = lp; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/parse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/scoprand.c /builddir/build/BUILD/nrn-7.8.1/src/oc/scoprand.c:20:13: warning: 'RCSid' defined but not used [-Wunused-variable] 20 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/settext.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/subrows.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c: In function 'nrn_cacheline_calloc': /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:246:16: warning: unused variable 'n' [-Wunused-variable] 246 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:246:13: warning: unused variable 'i' [-Wunused-variable] 246 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c: In function 'nrn_mallinfo': /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:430:9: warning: 'mallinfo' is deprecated [-Wdeprecated-declarations] 430 | m = mallinfo(); | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:25: /usr/include/malloc.h:118:24: note: declared here 118 | extern struct mallinfo mallinfo (void) __THROW __MALLOC_DEPRECATED; | ^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/x.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/x.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/xred.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/ansi.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/basic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/bind.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/buffer.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/file.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/fileio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c: In function 'emacs_vtinit': /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c:88:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 88 | if (vscreen == NULL) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c:91:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 91 | if (pscreen) { | ^~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/lock.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/line.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/edef.h:43, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:231: In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: 'strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/region.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/memacs/edef.h:42, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c:29: /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c: In function 'emacs_yank': /builddir/build/BUILD/nrn-7.8.1/src/memacs/redef.h:146:15: warning: unused variable 'emacs_kused' [-Wunused-variable] 146 | #define kused emacs_kused | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c:551:30: note: in expansion of macro 'kused' 551 | extern unsigned kused; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/spawn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/search.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/tcap.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/memacs/tcap.c:185:12: warning: 'putnpad' defined but not used [-Wunused-function] 185 | static int putnpad(str, n) | ^~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/termio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/window.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/word.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/arnoldi.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/arnoldi.c:37:13: warning: 'rcsid' defined but not used [-Wunused-variable] 37 | static char rcsid[] = "arnoldi.c,v 1.1 1997/12/04 17:55:13 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'interchange': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:55:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 55 | Real **A_me, tmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'BKPfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:108:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 108 | Real **A_me, aii, aip1, aip1i, lambda, sigma, tmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'BKPsolve': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:235:59: warning: variable 'tmp_ve' set but not used [-Wunused-but-set-variable] 235 | Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:235:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 235 | Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "bkpfacto.c,v 1.1 1997/12/04 17:55:14 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bdfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bdfactor.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "$Id: "; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/chfactor.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/mesch/chfactor.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "chfactor.c,v 1.1 1997/12/04 17:55:15 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c: In function 'vm_move': /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c:193:17: warning: variable 'dim0' set but not used [-Wunused-but-set-variable] 193 | int dim0, i; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c:28:17: warning: 'rcsid' defined but not used [-Wunused-variable] 28 | static char rcsid[] = "copy.c,v 1.1 1997/12/04 17:55:17 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/conjgrad.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/conjgrad.c:52:17: warning: 'rcsid' defined but not used [-Wunused-variable] 52 | static char rcsid[] = "conjgrad.c,v 1.1 1997/12/04 17:55:16 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c: In function 'main': /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:38: warning: unused variable 'dtmp' [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:31: warning: unused variable 'deps1' [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:31: warning: 'deps1' defined but not used [-Wunused-variable] /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:38: warning: 'dtmp' defined but not used [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/err.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/err.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "err.c,v 1.1 1997/12/04 17:55:19 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/fft.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/fft.c:34:13: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "fft.c,v 1.1 1997/12/04 17:55:20 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmm': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:439:31: warning: unused variable 'k' [-Wunused-variable] 439 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:439:28: warning: unused variable 'j' [-Wunused-variable] 439 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmtrm': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:458:28: warning: unused variable 'j' [-Wunused-variable] 458 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:458:25: warning: unused variable 'i' [-Wunused-variable] 458 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmmtr': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:476:31: warning: unused variable 'k' [-Wunused-variable] 476 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:476:28: warning: unused variable 'j' [-Wunused-variable] 476 | register int i, j, k; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:87:17: warning: 'rcsid' defined but not used [-Wunused-variable] 87 | static char rcsid[] = "$Id: extras.c,v 1.4 1995/06/08 15:13:15 des Exp $"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/givens.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/givens.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "givens.c,v 1.1 1997/12/04 17:55:22 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hessen.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hessen.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "hessen.c,v 1.1 1997/12/04 17:55:23 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hsehldr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hsehldr.c:37:17: warning: 'rcsid' defined but not used [-Wunused-variable] 37 | static char rcsid[] = "hsehldr.c,v 1.1 1997/12/04 17:55:24 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/init.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/mesch/init.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "init.c,v 1.1 1997/12/04 17:55:25 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c: In function 'iter_copy2': /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c:207:21: warning: operation on 'ip2->shared_x' may be undefined [-Wsequence-point] 207 | ip2->shared_x = ip2->shared_x = FALSE; At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c:44:13: warning: 'rcsid' defined but not used [-Wunused-variable] 44 | static char rcsid[] = "iter0.c,v 1.1 1997/12/04 17:55:26 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/itersym.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/itersym.c:43:13: warning: 'rcsid' defined but not used [-Wunused-variable] 43 | static char rcsid[] = "itersym.c,v 1.1 1997/12/04 17:55:29 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:826:13: warning: 'test_mgcr' defined but not used [-Wunused-function] 826 | static void test_mgcr(ip,i,Q,R) | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:541:13: warning: 'test_gmres' defined but not used [-Wunused-function] 541 | static void test_gmres(ip,i,Q,R,givc,givs,h_val) | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:43:13: warning: 'rcsid' defined but not used [-Wunused-variable] 43 | static char rcsid[] = "iternsym.c,v 1.1 1997/12/04 17:55:27 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lanczos.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/mesch/lanczos.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "lanczos.c,v 1.1 1997/12/04 17:55:31 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c: In function 'iv_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c:117:15: warning: operation on 'iv->ive' may be undefined [-Wsequence-point] 117 | iv->ive = RENEW(iv->ive,new_dim,int); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "ivecop.c,v 1.1 1997/12/04 17:55:30 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/machine.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/machine.c:35:18: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char *rcsid = "machine.c,v 1.1 1997/12/04 17:55:33 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lufactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lufactor.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "lufactor.c,v 1.1 1997/12/04 17:55:32 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matlab.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/mesch/matlab.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "matlab.c,v 1.1 1997/12/04 17:55:34 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matop.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/mesch/matop.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "matop.c,v 1.1 1997/12/04 17:55:35 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matrixio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matrixio.c:35:13: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "matrixio.c,v 1.1 1997/12/04 17:55:35 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/meminfo.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/meminfo.c:46:13: warning: 'rcsid' defined but not used [-Wunused-variable] 46 | static char rcsid[] = "meminfo.c,v 1.1 1997/12/04 17:55:37 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'm_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:287:13: warning: operation on 'A->me' may be undefined [-Wsequence-point] 287 | A->me = RENEW(A->me,new_m,Real *); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:303:15: warning: operation on 'A->base' may be undefined [-Wsequence-point] 303 | A->base = RENEW(A->base,new_size,Real); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'px_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:421:14: warning: operation on 'px->pe' may be undefined [-Wsequence-point] 421 | px->pe = RENEW(px->pe,new_size,u_int); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'v_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:466:13: warning: operation on 'x->ve' may be undefined [-Wsequence-point] 466 | x->ve = RENEW(x->ve,new_dim,Real); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "memory.c,v 1.1 1997/12/04 17:55:38 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memstat.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memstat.c:44:13: warning: 'rcsid' defined but not used [-Wunused-variable] 44 | static char rcsid[] = "memstat.c,v 1.1 1997/12/04 17:55:39 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/norm.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/norm.c:31:17: warning: 'rcsid' defined but not used [-Wunused-variable] 31 | static char rcsid[] = "norm.c,v 1.1 1997/12/04 17:55:43 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/mfunc.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/mfunc.c:39:17: warning: 'rcsid' defined but not used [-Wunused-variable] 39 | static char rcsid[] = "mfunc.c,v 1.1 1997/12/04 17:55:41 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/otherio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/otherio.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "otherio.c,v 1.1 1997/12/04 17:55:44 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/pxop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/pxop.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "pxop.c,v 1.1 1997/12/04 17:55:44 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/qrfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/qrfactor.c:42:17: warning: 'rcsid' defined but not used [-Wunused-variable] 42 | static char rcsid[] = "qrfactor.c,v 1.1 1997/12/04 17:55:45 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/solve.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/solve.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "solve.c,v 1.1 1997/12/04 17:55:47 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'hhldr3cols': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:74:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 74 | Real **A_me, ip, prod; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'hhldr3rows': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:123:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 123 | Real **A_me, ip, prod; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'schur': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:159:51: warning: unused variable 't' [-Wunused-variable] 159 | Real beta2, c, discrim, dummy, nu1, s, t, tmp, x, y, z; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "schur.c,v 1.1 1997/12/04 17:55:46 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparseio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparseio.c:36:13: warning: 'rcsid' defined but not used [-Wunused-variable] 36 | static char rcsid[] = "sparseio.c,v 1.1 1997/12/04 17:55:49 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_set_val': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:99:17: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 99 | r->elt = RENEW(r->elt,new_len,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_mv_mlt': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:127:22: warning: variable 'n' set but not used [-Wunused-but-set-variable] 127 | int i, j_idx, m, n, max_idx; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_vm_mlt': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:163:22: warning: variable 'n' set but not used [-Wunused-but-set-variable] 163 | int i, j_idx, m, n, max_idx; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_copy2': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:679:16: warning: operation on 'mesch_out->row' may be undefined [-Wsequence-point] 679 | OUT->row = RENEW(OUT->row,A->m,SPROW); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:756:14: warning: operation on 'A->row' may be undefined [-Wsequence-point] 756 | A->row = RENEW(A->row,(unsigned)m,SPROW); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:783:20: warning: operation on 'A->start_row' may be undefined [-Wsequence-point] 783 | A->start_row = RENEW(A->start_row,(unsigned)n,int); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:784:20: warning: operation on 'A->start_idx' may be undefined [-Wsequence-point] 784 | A->start_idx = RENEW(A->start_idx,(unsigned)n,int); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "sparse.c,v 1.1 1997/12/04 17:55:48 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c: In function 'spICHfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c:386:23: warning: variable 'n' set but not used [-Wunused-but-set-variable] 386 | int k, m, n, nxt_row, nxt_idx, diag_idx; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "spchfctr.c,v 1.1 1997/12/04 17:55:51 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c: In function 'spILUfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c:306:37: warning: variable 'm' set but not used [-Wunused-but-set-variable] 306 | int i, k, idx, idx_piv, m, n, old_idx, old_idx_piv; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c: In function 'spBKPfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:569:17: warning: variable 'row_num' set but not used [-Wunused-but-set-variable] 569 | int row_num; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:567:44: warning: variable 'r' set but not used [-Wunused-but-set-variable] 567 | int i, j, k, l, n, onebyone=0, r; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "spbkp.c,v 1.1 1997/12/04 17:55:50 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_xpd': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:202:14: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 202 | r->elt = RENEW(r->elt,newlen,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:248:14: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 248 | r->elt = RENEW(r->elt,n,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_set_val': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:692:17: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 692 | r->elt = RENEW(r->elt,new_len,row_elt); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "sprow.c,v 1.1 1997/12/04 17:55:53 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spswap.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spswap.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "spswap.c,v 1.1 1997/12/04 17:55:54 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/submat.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/submat.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "submat.c,v 1.1 1997/12/04 17:55:55 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/symmeig.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/symmeig.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "symmeig.c,v 1.1 1997/12/04 17:55:57 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/svd.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/svd.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "svd.c,v 1.1 1997/12/04 17:55:56 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/update.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/mesch/update.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "update.c,v 1.1 1997/12/04 17:56:01 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/version.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c: In function 'zvm_move': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c:175:17: warning: variable 'dim0' set but not used [-Wunused-but-set-variable] 175 | int dim0, i; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c:28:17: warning: 'rcsid' defined but not used [-Wunused-variable] 28 | static char rcsid[] = "zcopy.c,v 1.1 1997/12/04 17:56:04 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/vecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/vecop.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "vecop.c,v 1.1 1997/12/04 17:56:02 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zfunc.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zfunc.c:35:13: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "zfunc.c,v 1.1 1997/12/04 17:56:05 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zgivens.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zgivens.c:36:17: warning: 'rcsid' defined but not used [-Wunused-variable] 36 | static char rcsid[] = "$Id: "; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhessen.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhessen.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "zhessen.c,v 1.1 1997/12/04 17:56:07 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhsehldr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhsehldr.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "zhsehldr.c,v 1.1 1997/12/04 17:56:08 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmachine.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmachine.c:35:18: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char *rcsid = "zmachine.c,v 1.1 1997/12/04 17:56:10 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zlufctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zlufctr.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "zlufctr.c,v 1.1 1997/12/04 17:56:09 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatlab.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatlab.c:41:13: warning: 'rcsid' defined but not used [-Wunused-variable] 41 | static char rcsid[] = "zmatlab.c,v 1.1 1997/12/04 17:56:11 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatio.c:33:13: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zmatio.c,v 1.1 1997/12/04 17:56:11 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c: In function 'zm_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:250:13: warning: operation on 'A->me' may be undefined [-Wsequence-point] 250 | A->me = RENEW(A->me,new_m,complex *); /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:266:15: warning: operation on 'A->base' may be undefined [-Wsequence-point] 266 | A->base = RENEW(A->base,new_size,complex); /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c: In function 'zv_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:385:13: warning: operation on 'x->ve' may be undefined [-Wsequence-point] 385 | x->ve = RENEW(x->ve,new_dim,complex); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zmemory.c,v 1.1 1997/12/04 17:56:13 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatop.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatop.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "zmatop.c,v 1.1 1997/12/04 17:56:12 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/znorm.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/znorm.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "znorm.c,v 1.1 1997/12/04 17:56:14 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zschur.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zschur.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "zschur.c,v 1.1 1997/12/04 17:56:16 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zqrfctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zqrfctr.c:42:17: warning: 'rcsid' defined but not used [-Wunused-variable] 42 | static char rcsid[] = "zqrfctr.c,v 1.1 1997/12/04 17:56:15 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zsolve.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zsolve.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zsolve.c,v 1.1 1997/12/04 17:56:17 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zvecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zvecop.c:31:17: warning: 'rcsid' defined but not used [-Wunused-variable] 31 | static char rcsid[] = "zvecop.c,v 1.1 1997/12/04 17:56:19 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:116:34: warning: missing braces around initializer [-Wmissing-braces] 116 | static VoidFunc hoc_intfunc[] = { | ^ 117 | 0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:119:38: warning: missing braces around initializer [-Wmissing-braces] 119 | static Member_func _member_func[] = { | ^ 120 | "loc", _hoc_loc_pnt, | { } 121 | "has_loc", _hoc_has_loc, | { } 122 | "get_loc", _hoc_get_loc_pnt, | { } 123 | "check", _hoc_check, | { } 124 | "record", _hoc_record, | { } 125 | 0, 0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | "thresh", "mV", | { } 134 | "time", "ms", | { } 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:170:15: warning: unused variable 'prop_ion' [-Wunused-variable] 170 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_apcount_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:200:13: warning: unused variable '_vectorized' [-Wunused-variable] 200 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:18: warning: unused variable '_save' [-Wunused-variable] 293 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:7: warning: unused variable '_i' [-Wunused-variable] 293 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_cur__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:35: warning: variable '_v' set but not used [-Wunused-but-set-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:29: warning: unused variable '_rhs' [-Wunused-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:9: warning: variable '_p' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_jacob__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:20: warning: unused variable '_ppvar' [-Wunused-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:420:6: warning: unused variable '_i' [-Wunused-variable] 420 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:419:21: warning: unused variable '_p' [-Wunused-variable] 419 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:416:13: warning: 'terminal' defined but not used [-Wunused-function] 416 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:28:22: warning: '_nrn_current__APCount' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__APCount | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:335:15: note: in expansion of macro '_nrn_current' 335 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:226:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 226 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:224:12: warning: '_ninits' defined but not used [-Wunused-variable] 224 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:223:12: warning: 'error' defined but not used [-Wunused-variable] 223 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:221:14: warning: 'modelname' defined but not used [-Wunused-variable] 221 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:220:12: warning: '_reset' defined but not used [-Wunused-variable] 220 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:137:16: warning: 'delta_t' defined but not used [-Wunused-variable] 137 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:111:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 111 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:188:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 188 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 66%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:82:34: warning: missing braces around initializer [-Wmissing-braces] 82 | static VoidFunc hoc_intfunc[] = { | ^ 83 | "setdata_feature", _hoc_setdata, | { } 84 | "install_vector_fitness", _hoc_install_vector_fitness, | { } 85 | 0, 0 | { 86 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:44: warning: missing braces around initializer [-Wmissing-braces] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^ 90 | 0,0,0 | { { 91 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:42: warning: missing braces around initializer [-Wmissing-braces] 92 | static HocParmUnits _hoc_parm_units[] = { | ^ 93 | 0,0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:97:33: warning: missing braces around initializer [-Wmissing-braces] 97 | static DoubScal hoc_scdoub[] = { | ^ 98 | 0,0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:100:31: warning: missing braces around initializer [-Wmissing-braces] 100 | static DoubVec hoc_vdoub[] = { | ^ 101 | 0,0,0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:120:28: warning: unused variable '_ppvar' [-Wunused-variable] 120 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:119:15: warning: unused variable 'prop_ion' [-Wunused-variable] 119 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_feature_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:135:13: warning: unused variable '_vectorized' [-Wunused-variable] 135 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'width': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:152:13: warning: unused variable 'i' [-Wunused-variable] 152 | int i, nx, ny, i1, i2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'xfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:177:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 177 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'yfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:207:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 207 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:18: warning: unused variable '_save' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:7: warning: unused variable '_i' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:324:6: warning: unused variable '_i' [-Wunused-variable] 324 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:321:13: warning: 'terminal' defined but not used [-Wunused-function] 321 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:30:19: warning: '_nrn_state_' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state_ | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:297:13: note: in expansion of macro 'nrn_state' 297 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:28:22: warning: '_nrn_current_' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current_ | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:293:15: note: in expansion of macro '_nrn_current' 293 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:25:18: warning: '_nrn_init_' defined but not used [-Wunused-function] 25 | #define nrn_init _nrn_init_ | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:272:13: note: in expansion of macro 'nrn_init' 272 | static void nrn_init(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:146:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 146 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:143:12: warning: 'error' defined but not used [-Wunused-variable] 143 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:141:14: warning: 'modelname' defined but not used [-Wunused-variable] 141 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:140:12: warning: '_reset' defined but not used [-Wunused-variable] 140 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:118:13: warning: 'nrn_alloc' defined but not used [-Wunused-function] 118 | static void nrn_alloc(Prop* _prop) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:108:21: warning: '_mechanism' defined but not used [-Wunused-variable] 108 | static const char *_mechanism[] = { | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:103:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 103 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:22: warning: '_hoc_parm_units' defined but not used [-Wunused-variable] 92 | static HocParmUnits _hoc_parm_units[] = { | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:23: warning: '_hoc_parm_limits' defined but not used [-Wunused-variable] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:60:13: warning: 'hoc_nrnpointerindex' defined but not used [-Wunused-variable] 60 | static int hoc_nrnpointerindex = -1; | ^~~~~~~~~~~~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:117:34: warning: missing braces around initializer [-Wmissing-braces] 117 | static VoidFunc hoc_intfunc[] = { | ^ 118 | 0,0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:120:38: warning: missing braces around initializer [-Wmissing-braces] 120 | static Member_func _member_func[] = { | ^ 121 | "loc", _hoc_loc_pnt, | { } 122 | "has_loc", _hoc_has_loc, | { } 123 | "get_loc", _hoc_get_loc_pnt, | { } 124 | "I", _hoc_I, | { } 125 | "M", _hoc_M, | { } 126 | "firetime", _hoc_firetime, | { } 127 | "newton1", _hoc_newton1, | { } 128 | 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:140:44: warning: missing braces around initializer [-Wmissing-braces] 140 | static HocParmLimits _hoc_parm_limits[] = { | ^ 141 | 0,0,0 | { { 142 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:143:42: warning: missing braces around initializer [-Wmissing-braces] 143 | static HocParmUnits _hoc_parm_units[] = { | ^ 144 | "taus", "ms", | { } 145 | "taum", "ms", | { } 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:179:15: warning: unused variable 'prop_ion' [-Wunused-variable] 179 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_intfire2_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:212:13: warning: unused variable '_vectorized' [-Wunused-variable] 212 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'I_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:268:15: warning: variable '_lf' set but not used [-Wunused-but-set-variable] 268 | double _lx , _lf ; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'newton1_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:371:38: warning: variable '_lxm' set but not used [-Wunused-but-set-variable] 371 | double _ldx , _lf , _ldf , _liter , _lxm ; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:18: warning: unused variable '_save' [-Wunused-variable] 415 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:7: warning: unused variable '_i' [-Wunused-variable] 415 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_init__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:19: warning: unused variable '_v' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:7: warning: unused variable '_nd' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_state__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:469:6: warning: unused variable '_i' [-Wunused-variable] 469 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:468:21: warning: unused variable '_p' [-Wunused-variable] 468 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:465:13: warning: 'terminal' defined but not used [-Wunused-function] 465 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:30:19: warning: '_nrn_state__IntFire2' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire2 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:448:13: note: in expansion of macro 'nrn_state' 448 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:28:22: warning: '_nrn_current__IntFire2' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire2 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:444:15: note: in expansion of macro '_nrn_current' 444 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:243:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 243 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:241:12: warning: '_ninits' defined but not used [-Wunused-variable] 241 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:240:12: warning: 'error' defined but not used [-Wunused-variable] 240 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:238:14: warning: 'modelname' defined but not used [-Wunused-variable] 238 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:237:12: warning: '_reset' defined but not used [-Wunused-variable] 237 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:112:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 112 | static void _hoc_setdata(void* _vptr) { Prop* make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:197:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 197 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:118:34: warning: missing braces around initializer [-Wmissing-braces] 118 | static VoidFunc hoc_intfunc[] = { | ^ 119 | 0,0 | { 120 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:121:38: warning: missing braces around initializer [-Wmissing-braces] 121 | static Member_func _member_func[] = { | ^ 122 | "loc", _hoc_loc_pnt, | { } 123 | "has_loc", _hoc_has_loc, | { } 124 | "get_loc", _hoc_get_loc_pnt, | { } 125 | "icur", _hoc_icur, | { } 126 | "vstim", _hoc_vstim, | { } 127 | 0, 0 | { 128 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:131:44: warning: missing braces around initializer [-Wmissing-braces] 131 | static HocParmLimits _hoc_parm_limits[] = { | ^ 132 | "rs", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "rs", "megohm", | { } 137 | "on", "ms", | { } 138 | "off", "ms", | { } 139 | "vc", "mV", | { } 140 | "i", "nA", | { } 141 | 0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:145:33: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubScal hoc_scdoub[] = { | ^ 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:148:31: warning: missing braces around initializer [-Wmissing-braces] 148 | static DoubVec hoc_vdoub[] = { | ^ 149 | 0,0,0 | { 150 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_oclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:210:13: warning: unused variable '_vectorized' [-Wunused-variable] 210 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:18: warning: unused variable '_save' [-Wunused-variable] 292 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:7: warning: unused variable '_i' [-Wunused-variable] 292 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_nrn_jacob__OClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:20: warning: unused variable '_ppvar' [-Wunused-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:461:6: warning: unused variable '_i' [-Wunused-variable] 461 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:460:21: warning: unused variable '_p' [-Wunused-variable] 460 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:457:13: warning: 'terminal' defined but not used [-Wunused-function] 457 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:236:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 236 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:234:12: warning: '_ninits' defined but not used [-Wunused-variable] 234 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:233:12: warning: 'error' defined but not used [-Wunused-variable] 233 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:231:14: warning: 'modelname' defined but not used [-Wunused-variable] 231 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:230:12: warning: '_reset' defined but not used [-Wunused-variable] 230 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:151:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 151 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:143:16: warning: 'delta_t' defined but not used [-Wunused-variable] 143 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:113:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 113 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:198:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 198 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:106:34: warning: missing braces around initializer [-Wmissing-braces] 106 | static VoidFunc hoc_intfunc[] = { | ^ 107 | 0,0 | { 108 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:109:38: warning: missing braces around initializer [-Wmissing-braces] 109 | static Member_func _member_func[] = { | ^ 110 | "loc", _hoc_loc_pnt, | { } 111 | "has_loc", _hoc_has_loc, | { } 112 | "get_loc", _hoc_get_loc_pnt, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:117:44: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmLimits _hoc_parm_limits[] = { | ^ 118 | 0,0,0 | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:120:42: warning: missing braces around initializer [-Wmissing-braces] 120 | static HocParmUnits _hoc_parm_units[] = { | ^ 121 | 0,0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:124:33: warning: missing braces around initializer [-Wmissing-braces] 124 | static DoubScal hoc_scdoub[] = { | ^ 125 | 0,0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:127:31: warning: missing braces around initializer [-Wmissing-braces] 127 | static DoubVec hoc_vdoub[] = { | ^ 128 | 0,0,0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:149:15: warning: unused variable 'prop_ion' [-Wunused-variable] 149 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_ppmark_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:176:13: warning: unused variable '_vectorized' [-Wunused-variable] 176 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:18: warning: unused variable '_save' [-Wunused-variable] 205 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:7: warning: unused variable '_i' [-Wunused-variable] 205 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_nrn_state__PointProcessMark': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:268:6: warning: unused variable '_i' [-Wunused-variable] 268 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:267:21: warning: unused variable '_p' [-Wunused-variable] 267 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:264:13: warning: 'terminal' defined but not used [-Wunused-function] 264 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:30:19: warning: '_nrn_state__PointProcessMark' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:238:13: note: in expansion of macro 'nrn_state' 238 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:28:22: warning: '_nrn_current__PointProcessMark' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:234:15: note: in expansion of macro '_nrn_current' 234 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:202:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 202 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:200:12: warning: '_ninits' defined but not used [-Wunused-variable] 200 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:199:12: warning: 'error' defined but not used [-Wunused-variable] 199 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:197:14: warning: 'modelname' defined but not used [-Wunused-variable] 197 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:196:12: warning: '_reset' defined but not used [-Wunused-variable] 196 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:130:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 130 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:101:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 101 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:62:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 62 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:164:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 164 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | "alpha", _hoc_alpha, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:128:44: warning: missing braces around initializer [-Wmissing-braces] 128 | static HocParmLimits _hoc_parm_limits[] = { | ^ 129 | "gmax", 0, 1e+09, | { { }} 130 | "tau", 0.001, 1e+06, | { { }} 131 | 0,0,0 | { { 132 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:133:42: warning: missing braces around initializer [-Wmissing-braces] 133 | static HocParmUnits _hoc_parm_units[] = { | ^ 134 | "onset", "ms", | { } 135 | "tau", "ms", | { } 136 | "gmax", "uS", | { } 137 | "e", "mV", | { } 138 | "i", "nA", | { } 139 | 0,0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:142:33: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubScal hoc_scdoub[] = { | ^ 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:145:31: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubVec hoc_vdoub[] = { | ^ 146 | 0,0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:174:15: warning: unused variable 'prop_ion' [-Wunused-variable] 174 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:205:13: warning: unused variable '_vectorized' [-Wunused-variable] 205 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:18: warning: unused variable '_save' [-Wunused-variable] 257 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:7: warning: unused variable '_i' [-Wunused-variable] 257 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_jacob__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:20: warning: unused variable '_ppvar' [-Wunused-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:368:6: warning: unused variable '_i' [-Wunused-variable] 368 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:367:21: warning: unused variable '_p' [-Wunused-variable] 367 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:364:13: warning: 'terminal' defined but not used [-Wunused-function] 364 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:231:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 231 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:229:12: warning: '_ninits' defined but not used [-Wunused-variable] 229 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:228:12: warning: 'error' defined but not used [-Wunused-variable] 228 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:226:14: warning: 'modelname' defined but not used [-Wunused-variable] 226 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:225:12: warning: '_reset' defined but not used [-Wunused-variable] 225 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:148:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 148 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:193:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 193 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_cur__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:107:26: warning: '_nd' may be used uninitialized in this function [-Wmaybe-uninitialized] 107 | #define NODERHS(n) (*((n)->_rhs)) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:300:7: note: '_nd' was declared here 300 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 67%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:119:34: warning: missing braces around initializer [-Wmissing-braces] 119 | static VoidFunc hoc_intfunc[] = { | ^ 120 | 0,0 | { 121 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:122:38: warning: missing braces around initializer [-Wmissing-braces] 122 | static Member_func _member_func[] = { | ^ 123 | "loc", _hoc_loc_pnt, | { } 124 | "has_loc", _hoc_has_loc, | { } 125 | "get_loc", _hoc_get_loc_pnt, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:130:44: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmLimits _hoc_parm_limits[] = { | ^ 131 | "tau2", 1e-09, 1e+09, | { { }} 132 | "tau1", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "tau1", "ms", | { } 137 | "tau2", "ms", | { } 138 | "e", "mV", | { } 139 | "A", "uS", | { } 140 | "B", "uS", | { } 141 | "i", "nA", | { } 142 | "g", "uS", | { } 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:191:15: warning: unused variable 'prop_ion' [-Wunused-variable] 191 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:216:46: warning: missing braces around initializer [-Wmissing-braces] 216 | static HocStateTolerance _hoc_state_tol[] = { | ^ 217 | 0,0 | { 218 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_exp2syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:227:13: warning: unused variable '_vectorized' [-Wunused-variable] 227 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_net_receive__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:325:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 325 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:340:22: warning: unused variable '_v' [-Wunused-variable] 340 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:18: warning: unused variable '_save' [-Wunused-variable] 351 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:7: warning: unused variable '_i' [-Wunused-variable] 351 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_nrn_jacob__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:20: warning: unused variable '_ppvar' [-Wunused-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:499:6: warning: unused variable '_i' [-Wunused-variable] 499 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:495:13: warning: 'terminal' defined but not used [-Wunused-function] 495 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:258:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 258 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:256:12: warning: '_ninits' defined but not used [-Wunused-variable] 256 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:255:12: warning: 'error' defined but not used [-Wunused-variable] 255 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:253:14: warning: 'modelname' defined but not used [-Wunused-variable] 253 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:252:12: warning: '_reset' defined but not used [-Wunused-variable] 252 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:147:16: warning: 'delta_t' defined but not used [-Wunused-variable] 147 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:114:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 114 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:75:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 75 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:209:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 209 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:122:34: warning: missing braces around initializer [-Wmissing-braces] 122 | static VoidFunc hoc_intfunc[] = { | ^ 123 | "setdata_hh", _hoc_setdata, | { } 124 | "rates_hh", _hoc_rates, | { } 125 | "vtrap_hh", _hoc_vtrap, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:154:44: warning: missing braces around initializer [-Wmissing-braces] 154 | static HocParmLimits _hoc_parm_limits[] = { | ^ 155 | "gl_hh", 0, 1e+09, | { { }} 156 | "gkbar_hh", 0, 1e+09, | { { }} 157 | "gnabar_hh", 0, 1e+09, | { { }} 158 | "usetable_hh", 0, 1, | { { }} 159 | 0,0,0 | { { 160 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:161:42: warning: missing braces around initializer [-Wmissing-braces] 161 | static HocParmUnits _hoc_parm_units[] = { | ^ 162 | "mtau_hh", "ms", | { } 163 | "htau_hh", "ms", | { } 164 | "ntau_hh", "ms", | { } 165 | "gnabar_hh", "S/cm2", | { } 166 | "gkbar_hh", "S/cm2", | { } 167 | "gl_hh", "S/cm2", | { } 168 | "el_hh", "mV", | { } 169 | "gna_hh", "S/cm2", | { } 170 | "gk_hh", "S/cm2", | { } 171 | "il_hh", "mA/cm2", | { } 172 | 0,0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:179:33: warning: missing braces around initializer [-Wmissing-braces] 179 | static DoubScal hoc_scdoub[] = { | ^ 180 | "minf_hh", &minf_hh, | { } 181 | "hinf_hh", &hinf_hh, | { } 182 | "ninf_hh", &ninf_hh, | { } 183 | "mtau_hh", &mtau_hh, | { } 184 | "htau_hh", &htau_hh, | { } 185 | "ntau_hh", &ntau_hh, | { } 186 | "usetable_hh", &usetable_hh, | { } 187 | 0,0 | { 188 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:189:31: warning: missing braces around initializer [-Wmissing-braces] 189 | static DoubVec hoc_vdoub[] = { | ^ 190 | 0,0,0 | { 191 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:258:46: warning: missing braces around initializer [-Wmissing-braces] 258 | static HocStateTolerance _hoc_state_tol[] = { | ^ 259 | 0,0 | { 260 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_hh_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:271:13: warning: unused variable '_vectorized' [-Wunused-variable] 271 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_check_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:356:10: warning: unused variable '_xi' [-Wunused-variable] 356 | double _xi, _tmax; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:39: warning: unused variable '_ix' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:35: warning: unused variable '_j' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_n_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:385:104: warning: unused variable '_j' [-Wunused-variable] 385 | static void _n_rates(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _lv){ int _i, _j; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:488:22: warning: unused variable '_v' [-Wunused-variable] 488 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:501:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 501 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:516:22: warning: unused variable '_v' [-Wunused-variable] 516 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:18: warning: unused variable '_save' [-Wunused-variable] 553 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:7: warning: unused variable '_i' [-Wunused-variable] 553 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_nrn_jacob__hh': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:20: warning: unused variable '_ppvar' [-Wunused-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:714:6: warning: unused variable '_i' [-Wunused-variable] 714 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:710:13: warning: 'terminal' defined but not used [-Wunused-function] 710 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:318:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 318 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:316:12: warning: '_ninits' defined but not used [-Wunused-variable] 316 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:315:12: warning: 'error' defined but not used [-Wunused-variable] 315 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:313:14: warning: 'modelname' defined but not used [-Wunused-variable] 313 | static char *modelname = "hh.mod squid sodium, potassium, and leak channels"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:312:12: warning: '_reset' defined but not used [-Wunused-variable] 312 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:192:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 192 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:174:16: warning: 'delta_t' defined but not used [-Wunused-variable] 174 | static double delta_t = 0.01; | ^~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:151:34: warning: missing braces around initializer [-Wmissing-braces] 151 | static VoidFunc hoc_intfunc[] = { | ^ 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:154:38: warning: missing braces around initializer [-Wmissing-braces] 154 | static Member_func _member_func[] = { | ^ 155 | "loc", _hoc_loc_pnt, | { } 156 | "has_loc", _hoc_has_loc, | { } 157 | "get_loc", _hoc_get_loc_pnt, | { } 158 | "E", _hoc_E, | { } 159 | "I", _hoc_I, | { } 160 | "M", _hoc_M, | { } 161 | "deriv", _hoc_deriv, | { } 162 | "firetimebound", _hoc_firetimebound, | { } 163 | "factors", _hoc_factors, | { } 164 | "fixprecondition", _hoc_fixprecondition, | { } 165 | "newstates", _hoc_newstates, | { } 166 | "search", _hoc_search, | { } 167 | "update", _hoc_update, | { } 168 | 0, 0 | { 169 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:190:44: warning: missing braces around initializer [-Wmissing-braces] 190 | static HocParmLimits _hoc_parm_limits[] = { | ^ 191 | "eps_IntFire4", 1e-09, 0.01, | { { }} 192 | "taueps_IntFire4", 1e-09, 1e+09, | { { }} 193 | "taum", 0, 1e+09, | { { }} 194 | "taui2", 0, 1e+09, | { { }} 195 | "taui1", 0, 1e+09, | { { }} 196 | "taue", 0, 1e+09, | { { }} 197 | 0,0,0 | { { 198 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:199:42: warning: missing braces around initializer [-Wmissing-braces] 199 | static HocParmUnits _hoc_parm_units[] = { | ^ 200 | "eps_IntFire4", "1e-9", | { } 201 | "taueps_IntFire4", "1e-9", | { } 202 | "taue", "ms", | { } 203 | "taui1", "ms", | { } 204 | "taui2", "ms", | { } 205 | "taum", "ms", | { } 206 | "ae", "1/ms", | { } 207 | "ai1", "1/ms", | { } 208 | "ai2", "1/ms", | { } 209 | 0,0 | { 210 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:212:33: warning: missing braces around initializer [-Wmissing-braces] 212 | static DoubScal hoc_scdoub[] = { | ^ 213 | "ib_IntFire4", &ib_IntFire4, | { } 214 | "eps_IntFire4", &eps_IntFire4, | { } 215 | "taueps_IntFire4", &taueps_IntFire4, | { } 216 | 0,0 | { 217 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:218:31: warning: missing braces around initializer [-Wmissing-braces] 218 | static DoubVec hoc_vdoub[] = { | ^ 219 | 0,0,0 | { 220 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:254:15: warning: unused variable 'prop_ion' [-Wunused-variable] 254 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_intfire4_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:288:13: warning: unused variable '_vectorized' [-Wunused-variable] 288 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:18: warning: unused variable '_save' [-Wunused-variable] 665 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:7: warning: unused variable '_i' [-Wunused-variable] 665 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_init__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:19: warning: unused variable '_v' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:7: warning: unused variable '_nd' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_state__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:723:6: warning: unused variable '_i' [-Wunused-variable] 723 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:722:21: warning: unused variable '_p' [-Wunused-variable] 722 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:719:13: warning: 'terminal' defined but not used [-Wunused-function] 719 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:30:19: warning: '_nrn_state__IntFire4' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire4 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:702:13: note: in expansion of macro 'nrn_state' 702 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:28:22: warning: '_nrn_current__IntFire4' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire4 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:698:15: note: in expansion of macro '_nrn_current' 698 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:319:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 319 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:317:12: warning: '_ninits' defined but not used [-Wunused-variable] 317 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:316:12: warning: 'error' defined but not used [-Wunused-variable] 316 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:314:14: warning: 'modelname' defined but not used [-Wunused-variable] 314 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:313:12: warning: '_reset' defined but not used [-Wunused-variable] 313 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:221:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 221 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:146:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 146 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:273:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 273 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'search_IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:596:8: warning: '_lsearch' may be used uninitialized in this function [-Wmaybe-uninitialized] 596 | return _lsearch; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:585:17: warning: '_lt2' may be used uninitialized in this function [-Wmaybe-uninitialized] 585 | while ( _lt2 - _lt1 > 1e-6 && flag == 0.0 ) { | ~~~~~^~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:96:34: warning: missing braces around initializer [-Wmissing-braces] 96 | static VoidFunc hoc_intfunc[] = { | ^ 97 | "setdata_pas", _hoc_setdata, | { } 98 | 0, 0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:102:44: warning: missing braces around initializer [-Wmissing-braces] 102 | static HocParmLimits _hoc_parm_limits[] = { | ^ 103 | "g_pas", 0, 1e+09, | { { }} 104 | 0,0,0 | { { 105 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:106:42: warning: missing braces around initializer [-Wmissing-braces] 106 | static HocParmUnits _hoc_parm_units[] = { | ^ 107 | "g_pas", "S/cm2", | { } 108 | "e_pas", "mV", | { } 109 | "i_pas", "mA/cm2", | { } 110 | 0,0 | { 111 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:113:33: warning: missing braces around initializer [-Wmissing-braces] 113 | static DoubScal hoc_scdoub[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:116:31: warning: missing braces around initializer [-Wmissing-braces] 116 | static DoubVec hoc_vdoub[] = { | ^ 117 | 0,0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:141:28: warning: unused variable '_ppvar' [-Wunused-variable] 141 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:140:15: warning: unused variable 'prop_ion' [-Wunused-variable] 140 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_passive_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:158:13: warning: unused variable '_vectorized' [-Wunused-variable] 158 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:18: warning: unused variable '_save' [-Wunused-variable] 182 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:7: warning: unused variable '_i' [-Wunused-variable] 182 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_nrn_jacob__pas': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:20: warning: unused variable '_ppvar' [-Wunused-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:287:6: warning: unused variable '_i' [-Wunused-variable] 287 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:286:21: warning: unused variable '_p' [-Wunused-variable] 286 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:283:13: warning: 'terminal' defined but not used [-Wunused-function] 283 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:179:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 179 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:177:12: warning: '_ninits' defined but not used [-Wunused-variable] 177 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:176:12: warning: 'error' defined but not used [-Wunused-variable] 176 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:174:14: warning: 'modelname' defined but not used [-Wunused-variable] 174 | static char *modelname = "passive membrane channel"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:173:12: warning: '_reset' defined but not used [-Wunused-variable] 173 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:119:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 119 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:65:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 65 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 68%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | 0, 0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:122:44: warning: missing braces around initializer [-Wmissing-braces] 122 | static HocParmLimits _hoc_parm_limits[] = { | ^ 123 | "dur", 0, 1e+09, | { { }} 124 | 0,0,0 | { { 125 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:126:42: warning: missing braces around initializer [-Wmissing-braces] 126 | static HocParmUnits _hoc_parm_units[] = { | ^ 127 | "del", "ms", | { } 128 | "dur", "ms", | { } 129 | "amp", "nA", | { } 130 | "i", "nA", | { } 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:134:33: warning: missing braces around initializer [-Wmissing-braces] 134 | static DoubScal hoc_scdoub[] = { | ^ 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:137:31: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubVec hoc_vdoub[] = { | ^ 138 | 0,0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:165:15: warning: unused variable 'prop_ion' [-Wunused-variable] 165 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_stim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:195:13: warning: unused variable '_vectorized' [-Wunused-variable] 195 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:18: warning: unused variable '_save' [-Wunused-variable] 224 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:7: warning: unused variable '_i' [-Wunused-variable] 224 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_nrn_jacob__IClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:20: warning: unused variable '_ppvar' [-Wunused-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:369:6: warning: unused variable '_i' [-Wunused-variable] 369 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:368:21: warning: unused variable '_p' [-Wunused-variable] 368 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:365:13: warning: 'terminal' defined but not used [-Wunused-function] 365 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:221:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 221 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:219:12: warning: '_ninits' defined but not used [-Wunused-variable] 219 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:218:12: warning: 'error' defined but not used [-Wunused-variable] 218 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:216:14: warning: 'modelname' defined but not used [-Wunused-variable] 216 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:215:12: warning: '_reset' defined but not used [-Wunused-variable] 215 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:140:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 140 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:106:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 106 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:67:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 67 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:183:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 183 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "icur", _hoc_icur, | { } 136 | "update", _hoc_update, | { } 137 | "vstim", _hoc_vstim, | { } 138 | 0, 0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:144:44: warning: missing braces around initializer [-Wmissing-braces] 144 | static HocParmLimits _hoc_parm_limits[] = { | ^ 145 | "dur", 0, 1e+09, | { { }} 146 | "fac", 1, 10, | { { }} 147 | "gain", 0, 1e+09, | { { }} 148 | "rstim", 1e-09, 1e+09, | { { }} 149 | "tau2", 0, 1e+09, | { { }} 150 | "tau1", 0, 1e+09, | { { }} 151 | 0,0,0 | { { 152 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:153:42: warning: missing braces around initializer [-Wmissing-braces] 153 | static HocParmUnits _hoc_parm_units[] = { | ^ 154 | "dur", "ms", | { } 155 | "amp", "mV", | { } 156 | "rstim", "megohm", | { } 157 | "tau1", "ms", | { } 158 | "tau2", "ms", | { } 159 | "e0", "mV", | { } 160 | "vo0", "mV", | { } 161 | "vi0", "mV", | { } 162 | "fac", "1.0", | { } 163 | "e", "mV", | { } 164 | "vo", "mV", | { } 165 | "vi", "mV", | { } 166 | "i", "nA", | { } 167 | 0,0 | { 168 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:172:33: warning: missing braces around initializer [-Wmissing-braces] 172 | static DoubScal hoc_scdoub[] = { | ^ 173 | 0,0 | { 174 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:175:31: warning: missing braces around initializer [-Wmissing-braces] 175 | static DoubVec hoc_vdoub[] = { | ^ 176 | 0,0,0 | { 177 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:213:15: warning: unused variable 'prop_ion' [-Wunused-variable] 213 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_vclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:248:13: warning: unused variable '_vectorized' [-Wunused-variable] 248 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'icur_VClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:306:9: warning: unused variable '_lvout' [-Wunused-variable] 306 | double _lvout ; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:382:7: warning: unused variable '_i' [-Wunused-variable] 382 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:561:6: warning: unused variable '_i' [-Wunused-variable] 561 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:558:13: warning: 'terminal' defined but not used [-Wunused-function] 558 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:274:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 274 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:269:14: warning: 'modelname' defined but not used [-Wunused-variable] 269 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:268:12: warning: '_reset' defined but not used [-Wunused-variable] 268 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:169:16: warning: 'delta_t' defined but not used [-Wunused-variable] 169 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:236:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 236 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:125:44: warning: missing braces around initializer [-Wmissing-braces] 125 | static HocParmLimits _hoc_parm_limits[] = { | ^ 126 | "tau", 1e-09, 1e+09, | { { }} 127 | 0,0,0 | { { 128 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:129:42: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmUnits _hoc_parm_units[] = { | ^ 130 | "tau", "ms", | { } 131 | "e", "mV", | { } 132 | "g", "uS", | { } 133 | "i", "nA", | { } 134 | 0,0 | { 135 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:202:46: warning: missing braces around initializer [-Wmissing-braces] 202 | static HocStateTolerance _hoc_state_tol[] = { | ^ 203 | 0,0 | { 204 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_expsyn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:213:13: warning: unused variable '_vectorized' [-Wunused-variable] 213 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_net_receive__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:288:22: warning: unused variable '_v' [-Wunused-variable] 288 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:299:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 299 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:18: warning: unused variable '_save' [-Wunused-variable] 325 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:7: warning: unused variable '_i' [-Wunused-variable] 325 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_nrn_jacob__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:20: warning: unused variable '_ppvar' [-Wunused-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:460:6: warning: unused variable '_i' [-Wunused-variable] 460 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:456:13: warning: 'terminal' defined but not used [-Wunused-function] 456 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:244:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 244 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:242:12: warning: '_ninits' defined but not used [-Wunused-variable] 242 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:241:12: warning: 'error' defined but not used [-Wunused-variable] 241 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:239:14: warning: 'modelname' defined but not used [-Wunused-variable] 239 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:238:12: warning: '_reset' defined but not used [-Wunused-variable] 238 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:136:16: warning: 'delta_t' defined but not used [-Wunused-variable] 136 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:70:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 70 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:195:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 195 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:113:34: warning: missing braces around initializer [-Wmissing-braces] 113 | static VoidFunc hoc_intfunc[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:116:38: warning: missing braces around initializer [-Wmissing-braces] 116 | static Member_func _member_func[] = { | ^ 117 | "loc", _hoc_loc_pnt, | { } 118 | "has_loc", _hoc_has_loc, | { } 119 | "get_loc", _hoc_get_loc_pnt, | { } 120 | "M", _hoc_M, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:127:44: warning: missing braces around initializer [-Wmissing-braces] 127 | static HocParmLimits _hoc_parm_limits[] = { | ^ 128 | 0,0,0 | { { 129 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:130:42: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmUnits _hoc_parm_units[] = { | ^ 131 | "tau", "ms", | { } 132 | "refrac", "ms", | { } 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:136:33: warning: missing braces around initializer [-Wmissing-braces] 136 | static DoubScal hoc_scdoub[] = { | ^ 137 | 0,0 | { 138 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:139:31: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubVec hoc_vdoub[] = { | ^ 140 | 0,0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:164:15: warning: unused variable 'prop_ion' [-Wunused-variable] 164 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_intfire1_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:196:13: warning: unused variable '_vectorized' [-Wunused-variable] 196 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_net_receive__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:258:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 258 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:18: warning: unused variable '_save' [-Wunused-variable] 282 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:7: warning: unused variable '_i' [-Wunused-variable] 282 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_init__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:19: warning: unused variable '_v' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:7: warning: unused variable '_nd' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_state__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:332:6: warning: unused variable '_i' [-Wunused-variable] 332 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:331:21: warning: unused variable '_p' [-Wunused-variable] 331 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:328:13: warning: 'terminal' defined but not used [-Wunused-function] 328 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:30:19: warning: '_nrn_state__IntFire1' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire1 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:311:13: note: in expansion of macro 'nrn_state' 311 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:28:22: warning: '_nrn_current__IntFire1' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire1 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:307:15: note: in expansion of macro '_nrn_current' 307 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:227:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 227 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:225:12: warning: '_ninits' defined but not used [-Wunused-variable] 225 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:224:12: warning: 'error' defined but not used [-Wunused-variable] 224 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:222:14: warning: 'modelname' defined but not used [-Wunused-variable] 222 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:221:12: warning: '_reset' defined but not used [-Wunused-variable] 221 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:142:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 142 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:108:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 108 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:181:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 181 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'M_IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:243:8: warning: '_lM' may be used uninitialized in this function [-Wmaybe-uninitialized] 243 | return _lM; | ^~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "erand", _hoc_erand, | { } 136 | "init_sequence", _hoc_init_sequence, | { } 137 | "invl", _hoc_invl, | { } 138 | "next_invl", _hoc_next_invl, | { } 139 | "noiseFromRandom123", _hoc_noiseFromRandom123, | { } 140 | "noiseFromRandom", _hoc_noiseFromRandom, | { } 141 | "seed", _hoc_seed, | { } 142 | 0, 0 | { 143 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:150:44: warning: missing braces around initializer [-Wmissing-braces] 150 | static HocParmLimits _hoc_parm_limits[] = { | ^ 151 | "interval", 1e-09, 1e+09, | { { }} 152 | "noise", 0, 1, | { { }} 153 | "number", 0, 1e+09, | { { }} 154 | 0,0,0 | { { 155 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:156:42: warning: missing braces around initializer [-Wmissing-braces] 156 | static HocParmUnits _hoc_parm_units[] = { | ^ 157 | "interval", "ms", | { } 158 | "start", "ms", | { } 159 | 0,0 | { 160 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:162:33: warning: missing braces around initializer [-Wmissing-braces] 162 | static DoubScal hoc_scdoub[] = { | ^ 163 | 0,0 | { 164 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:165:31: warning: missing braces around initializer [-Wmissing-braces] 165 | static DoubVec hoc_vdoub[] = { | ^ 166 | 0,0,0 | { 167 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_netstim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:228:13: warning: unused variable '_vectorized' [-Wunused-variable] 228 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:18: warning: unused variable '_save' [-Wunused-variable] 586 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:7: warning: unused variable '_i' [-Wunused-variable] 586 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_init__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:19: warning: unused variable '_v' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:7: warning: unused variable '_nd' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_state__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:655:6: warning: unused variable '_i' [-Wunused-variable] 655 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:654:21: warning: unused variable '_p' [-Wunused-variable] 654 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:651:13: warning: 'terminal' defined but not used [-Wunused-function] 651 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:30:19: warning: '_nrn_state__NetStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__NetStim | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:634:13: note: in expansion of macro 'nrn_state' 634 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:28:22: warning: '_nrn_current__NetStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__NetStim | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:630:15: note: in expansion of macro '_nrn_current' 630 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:518:13: warning: 'bbcore_read' defined but not used [-Wunused-function] 518 | static void bbcore_read(double* x, int* d, int* xx, int* offset, _threadargsproto_) { | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:261:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 261 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:259:12: warning: '_ninits' defined but not used [-Wunused-variable] 259 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:258:12: warning: 'error' defined but not used [-Wunused-variable] 258 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:256:14: warning: 'modelname' defined but not used [-Wunused-variable] 256 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:255:12: warning: '_reset' defined but not used [-Wunused-variable] 255 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:168:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 168 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netsmake[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' tim.c:123:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 123 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:211:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 211 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | "initps", _hoc_initps, | { } 119 | "play", _hoc_play, | { } 120 | "sendgroup", _hoc_sendgroup, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:137:33: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubScal hoc_scdoub[] = { | ^ 138 | 0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:140:31: warning: missing braces around initializer [-Wmissing-braces] 140 | static DoubVec hoc_vdoub[] = { | ^ 141 | 0,0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:166:15: warning: unused variable 'prop_ion' [-Wunused-variable] 166 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_pattern_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:198:13: warning: unused variable '_vectorized' [-Wunused-variable] 198 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:18: warning: unused variable '_save' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:7: warning: unused variable '_i' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_init__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:19: warning: unused variable '_v' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:7: warning: unused variable '_nd' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_state__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:426:6: warning: unused variable '_i' [-Wunused-variable] 426 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:423:13: warning: 'terminal' defined but not used [-Wunused-function] 423 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:30:19: warning: '_nrn_state__PatternStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:408:13: note: in expansion of macro 'nrn_state' 408 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:28:22: warning: '_nrn_current__PatternStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:404:15: note: in expansion of macro '_nrn_current' 404 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:230:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 230 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:227:12: warning: 'error' defined but not used [-Wunused-variable] 227 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:225:14: warning: 'modelname' defined but not used [-Wunused-variable] 225 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:224:12: warning: '_reset' defined but not used [-Wunused-variable] 224 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:143:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 143 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:182:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 182 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:123:34: warning: missing braces around initializer [-Wmissing-braces] 123 | static VoidFunc hoc_intfunc[] = { | ^ 124 | 0,0 | { 125 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:126:38: warning: missing braces around initializer [-Wmissing-braces] 126 | static Member_func _member_func[] = { | ^ 127 | "loc", _hoc_loc_pnt, | { } 128 | "has_loc", _hoc_has_loc, | { } 129 | "get_loc", _hoc_get_loc_pnt, | { } 130 | "icur", _hoc_icur, | { } 131 | "vstim", _hoc_vstim, | { } 132 | 0, 0 | { 133 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:136:44: warning: missing braces around initializer [-Wmissing-braces] 136 | static HocParmLimits _hoc_parm_limits[] = { | ^ 137 | "dur3", 0, 1e+09, | { { }} 138 | "dur2", 0, 1e+09, | { { }} 139 | "rs", 1e-09, 1e+09, | { { }} 140 | 0,0,0 | { { 141 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:142:42: warning: missing braces around initializer [-Wmissing-braces] 142 | static HocParmUnits _hoc_parm_units[] = { | ^ 143 | "rs", "megohm", | { } 144 | "dur1", "ms", | { } 145 | "amp1", "mV", | { } 146 | "dur2", "ms", | { } 147 | "amp2", "mV", | { } 148 | "dur3", "ms", | { } 149 | "amp3", "mV", | { } 150 | "i", "nA", | { } 151 | "vc", "mV", | { } 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:156:33: warning: missing braces around initializer [-Wmissing-braces] 156 | static DoubScal hoc_scdoub[] = { | ^ 157 | 0,0 | { 158 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:159:31: warning: missing braces around initializer [-Wmissing-braces] 159 | static DoubVec hoc_vdoub[] = { | ^ 160 | 0,0,0 | { 161 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_svclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:226:13: warning: unused variable '_vectorized' [-Wunused-variable] 226 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:18: warning: unused variable '_save' [-Wunused-variable] 317 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:7: warning: unused variable '_i' [-Wunused-variable] 317 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_nrn_jacob__SEClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:20: warning: unused variable '_ppvar' [-Wunused-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:488:6: warning: unused variable '_i' [-Wunused-variable] 488 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:487:21: warning: unused variable '_p' [-Wunused-variable] 487 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:484:13: warning: 'terminal' defined but not used [-Wunused-function] 484 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:252:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 252 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:250:12: warning: '_ninits' defined but not used [-Wunused-variable] 250 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:249:12: warning: 'error' defined but not used [-Wunused-variable] 249 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:247:14: warning: 'modelname' defined but not used [-Wunused-variable] 247 | static char *modelname = "svclmp.mod"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:246:12: warning: '_reset' defined but not used [-Wunused-variable] 246 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:162:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 162 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:154:16: warning: 'delta_t' defined but not used [-Wunused-variable] 154 | static double delta_t = 1; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:118:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 118 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:214:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 214 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/ACG.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Binomial.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/DiscUnif.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 70%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Complex.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Erlang.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Geom.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/HypGeom.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/LogNorm.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 71%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/MLCG.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/NegExp.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Normal.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Poisson.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/RNG.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 72%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Random.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:93:8: warning: when initialized here [-Wreorder] 93 | inline RandomInteger::RandomInteger(long low, long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:99:8: warning: when initialized here [-Wreorder] 99 | inline RandomInteger::RandomInteger(long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:106:8: warning: when initialized here [-Wreorder] 106 | inline RandomInteger::RandomInteger(RNG *gen) | ^~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplStat.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Uniform.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 73%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Weibull.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/builtin.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/d_vec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c: In function 'abort_run': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c:50:10: warning: unused variable 'tmpstr' [-Wunused-variable] 50 | char tmpstr[4]; | ^~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 74%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/d_avec.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adams.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adams.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adeuler.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adeuler.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adrunge.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adrunge.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/boundary.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/boundary.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/advance.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/advance.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crank.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crank.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c: In function 'clsoda': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:52:20: warning: unused variable 'iout' [-Wunused-variable] 52 | static integer iout; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:44:13: warning: unused variable 'i' [-Wunused-variable] 44 | int i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:52:20: warning: 'iout' defined but not used [-Wunused-variable] 52 | static integer iout; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/deflate.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/deflate.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c: In function 'derivimplicit': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c:22:9: warning: unused variable 'i' [-Wunused-variable] 22 | int i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/scoperf.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/scoperf.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/euler.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/euler.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/expfit.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/expfit.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/exprand.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/exprand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2cmisc.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2cmisc.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/factoria.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/factoria.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:44:16: warning: 'laststep' defined but not used [-Wunused-variable] 44 | static Spline *laststep = SP0;/* the step list used on previous call */ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:42:16: warning: 'steplist' defined but not used [-Wunused-variable] 42 | static Spline *steplist = SP0; /* list of steps */ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:17:13: warning: 'RCSid' defined but not used [-Wunused-variable] 17 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gauss.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gauss.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gear.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gear.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/getmem.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/getmem.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/harmonic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/harmonic.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/heun.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/heun.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/hyperbol.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/hyperbol.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/invert.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/invert.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/lag.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/lag.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/legendre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/legendre.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:104:17: warning: missing braces around initializer [-Wmissing-braces] 104 | } eh0001_ = { 1, 6 }; | ^ | { } /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'lsoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2489:9: note: in expansion of macro 'ls0001_1' 2489 | if (ls0001_1.init == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2497:5: note: in expansion of macro 'ls0001_1' 2497 | ls0001_1.init = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2502:5: note: in expansion of macro 'ls0001_1' 2502 | ls0001_1.ntrep = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2520:18: note: in expansion of macro 'ls0001_1' 2520 | if (neq[1] > ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2524:5: note: in expansion of macro 'ls0001_1' 2524 | ls0001_1.n = neq[1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2540:25: note: in expansion of macro 'ls0001_1' 2540 | if (ml < 0 || ml >= ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2543:25: note: in expansion of macro 'ls0001_1' 2543 | if (mu < 0 || mu >= ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2553:5: note: in expansion of macro 'ls0001_1' 2553 | ls0001_1.mxstep = mxstp0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2554:5: note: in expansion of macro 'ls0001_1' 2554 | ls0001_1.mxhnil = mxhnl0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2555:5: note: in expansion of macro 'ls0001_1' 2555 | ls0001_1.hmxi = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2556:5: note: in expansion of macro 'ls0001_1' 2556 | ls0001_1.hmin = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2569:5: note: in expansion of macro 'ls0001_1' 2569 | ls0001_1.mxstep = iwork[6]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2570:9: note: in expansion of macro 'ls0001_1' 2570 | if (ls0001_1.mxstep < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2573:9: note: in expansion of macro 'ls0001_1' 2573 | if (ls0001_1.mxstep == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2574:9: note: in expansion of macro 'ls0001_1' 2574 | ls0001_1.mxstep = mxstp0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2576:5: note: in expansion of macro 'ls0001_1' 2576 | ls0001_1.mxhnil = iwork[7]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2577:9: note: in expansion of macro 'ls0001_1' 2577 | if (ls0001_1.mxhnil < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2580:9: note: in expansion of macro 'ls0001_1' 2580 | if (ls0001_1.mxhnil == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2581:9: note: in expansion of macro 'ls0001_1' 2581 | ls0001_1.mxhnil = mxhnl0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2611:5: note: in expansion of macro 'ls0001_1' 2611 | ls0001_1.hmxi = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2613:9: note: in expansion of macro 'ls0001_1' 2613 | ls0001_1.hmxi = 1. / hmax; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2615:5: note: in expansion of macro 'ls0001_1' 2615 | ls0001_1.hmin = rwork[7]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2616:9: note: in expansion of macro 'ls0001_1' 2616 | if (ls0001_1.hmin < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2637:9: note: in expansion of macro 'ls0001_1' 2637 | ls0001_1.meth = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2640:9: note: in expansion of macro 'ls0001_1' 2640 | ls0001_1.nyh = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2640:24: note: in expansion of macro 'ls0001_1' 2640 | ls0001_1.nyh = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2642:5: note: in expansion of macro 'ls0001_1' 2642 | ls0001_1.lyh = 21; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2643:37: note: in expansion of macro 'ls0001_1' 2643 | len1n = (lsa001_1.mxordn + 1) * ls0001_1.nyh + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2644:37: note: in expansion of macro 'ls0001_1' 2644 | len1s = (lsa001_1.mxords + 1) * ls0001_1.nyh + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2645:5: note: in expansion of macro 'ls0001_1' 2645 | ls0001_1.lwm = len1s + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2647:17: note: in expansion of macro 'ls0001_1' 2647 | lenwm = ls0001_1.n * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2647:30: note: in expansion of macro 'ls0001_1' 2647 | lenwm = ls0001_1.n * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2650:40: note: in expansion of macro 'ls0001_1' 2650 | lenwm = ((ml << 1) + mu + 1) * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2654:9: note: in expansion of macro 'ls0001_1' 2654 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2658:12: note: in expansion of macro 'ls0001_1' 2658 | len2 = ls0001_1.n * 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2664:5: note: in expansion of macro 'ls0001_1' 2664 | ls0001_1.liwm = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2665:13: note: in expansion of macro 'ls0001_1' 2665 | leniw = ls0001_1.n + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2667:9: note: in expansion of macro 'ls0001_1' 2667 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2683:5: note: in expansion of macro 'ls0001_1' 2683 | ls0001_1.lewt = len1 + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2689:5: note: in expansion of macro 'ls0001_1' 2689 | ls0001_1.lewt = len1c + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:5: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:22: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:38: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:5: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:22: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:39: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2719:11: note: in expansion of macro 'ls0001_1' 2719 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2740:5: note: in expansion of macro 'ls0001_1' 2740 | ls0001_1.jstart = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2741:9: note: in expansion of macro 'ls0001_1' 2741 | if (ls0001_1.n == ls0001_1.nyh) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2741:23: note: in expansion of macro 'ls0001_1' 2741 | if (ls0001_1.n == ls0001_1.nyh) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:10: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:25: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:38: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:10: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:26: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:49: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2767:5: note: in expansion of macro 'ls0001_1' 2767 | ls0001_1.uround = d1mach_(&c__4); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2768:5: note: in expansion of macro 'ls0001_1' 2768 | ls0001_1.tn = *t; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2770:5: note: in expansion of macro 'ls0001_1' 2770 | ls0001_1.maxord = lsa001_1.mxordn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2782:5: note: in expansion of macro 'ls0001_1' 2782 | ls0001_1.jstart = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2783:5: note: in expansion of macro 'ls0001_1' 2783 | ls0001_1.nhnil = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2784:5: note: in expansion of macro 'ls0001_1' 2784 | ls0001_1.nst = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2785:5: note: in expansion of macro 'ls0001_1' 2785 | ls0001_1.nje = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2786:5: note: in expansion of macro 'ls0001_1' 2786 | ls0001_1.nslast = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2787:5: note: in expansion of macro 'ls0001_1' 2787 | ls0001_1.hu = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2788:5: note: in expansion of macro 'ls0001_1' 2788 | ls0001_1.nqu = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2790:5: note: in expansion of macro 'ls0001_1' 2790 | ls0001_1.miter = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2791:5: note: in expansion of macro 'ls0001_1' 2791 | ls0001_1.ccmax = .3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2792:5: note: in expansion of macro 'ls0001_1' 2792 | ls0001_1.maxcor = 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2793:5: note: in expansion of macro 'ls0001_1' 2793 | ls0001_1.msbp = 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2794:5: note: in expansion of macro 'ls0001_1' 2794 | ls0001_1.mxncf = 10; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2797:11: note: in expansion of macro 'ls0001_1' 2797 | lf0 = ls0001_1.lyh + ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2797:26: note: in expansion of macro 'ls0001_1' 2797 | lf0 = ls0001_1.lyh + ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2799:5: note: in expansion of macro 'ls0001_1' 2799 | ls0001_1.nfe = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2802:11: note: in expansion of macro 'ls0001_1' 2802 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2805:19: note: in expansion of macro 'ls0001_1' 2805 | rwork[i + ls0001_1.lyh - 1] = y[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2809:5: note: in expansion of macro 'ls0001_1' 2809 | ls0001_1.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2810:5: note: in expansion of macro 'ls0001_1' 2810 | ls0001_1.h = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:13: note: in expansion of macro 'ls0001_1' 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:58: note: in expansion of macro 'ls0001_1' 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2812:19: note: in expansion of macro 'ls0001_1' 2812 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2813:11: note: in expansion of macro 'ls0001_1' 2813 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2815:23: note: in expansion of macro 'ls0001_1' 2815 | if (rwork[i + ls0001_1.lewt - 1] <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2819:19: note: in expansion of macro 'ls0001_1' 2819 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2819:55: note: in expansion of macro 'ls0001_1' 2819 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2849:17: note: in expansion of macro 'ls0001_1' 2849 | if (tdist < ls0001_1.uround * 2. * w0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2856:11: note: in expansion of macro 'ls0001_1' 2856 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2868:11: note: in expansion of macro 'ls0001_1' 2868 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2883:22: note: in expansion of macro 'ls0001_1' 2883 | d_1 = tol, d_2 = ls0001_1.uround * 100.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:20: note: in expansion of macro 'ls0001_1' 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:52: note: in expansion of macro 'ls0001_1' 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2897:20: note: in expansion of macro 'ls0001_1' 2897 | rh = abs(h0) * ls0001_1.hmxi; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2903:5: note: in expansion of macro 'ls0001_1' 2903 | ls0001_1.h = h0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2904:11: note: in expansion of macro 'ls0001_1' 2904 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2919:5: note: in expansion of macro 'ls0001_1' 2919 | ls0001_1.nslast = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2919:23: note: in expansion of macro 'ls0001_1' 2919 | ls0001_1.nslast = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2928:10: note: in expansion of macro 'ls0001_1' 2928 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2928:33: note: in expansion of macro 'ls0001_1' 2928 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2931:32: note: in expansion of macro 'ls0001_1' 2931 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2931:48: note: in expansion of macro 'ls0001_1' 2931 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:10: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:24: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:39: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2939:24: note: in expansion of macro 'ls0001_1' 2939 | if ((tp - *tout) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2942:10: note: in expansion of macro 'ls0001_1' 2942 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2942:33: note: in expansion of macro 'ls0001_1' 2942 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2945:10: note: in expansion of macro 'ls0001_1' 2945 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2949:10: note: in expansion of macro 'ls0001_1' 2949 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2949:33: note: in expansion of macro 'ls0001_1' 2949 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2952:27: note: in expansion of macro 'ls0001_1' 2952 | if ((tcrit - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2955:10: note: in expansion of macro 'ls0001_1' 2955 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2955:33: note: in expansion of macro 'ls0001_1' 2955 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2958:32: note: in expansion of macro 'ls0001_1' 2958 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2958:48: note: in expansion of macro 'ls0001_1' 2958 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2966:10: note: in expansion of macro 'ls0001_1' 2966 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2966:33: note: in expansion of macro 'ls0001_1' 2966 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2971:19: note: in expansion of macro 'ls0001_1' 2971 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2971:53: note: in expansion of macro 'ls0001_1' 2971 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:13: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:27: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:41: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2980:27: note: in expansion of macro 'ls0001_1' 2980 | if ((tnext - tcrit) * ls0001_1.h <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:5: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:27: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:48: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2985:9: note: in expansion of macro 'ls0001_1' 2985 | ls0001_1.jstart = -2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3001:9: note: in expansion of macro 'ls0001_1' 3001 | if (ls0001_1.meth == lsa001_1.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:9: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:24: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:43: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:13: note: in expansion of macro 'ls0001_1' 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:58: note: in expansion of macro 'ls0001_1' 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3015:19: note: in expansion of macro 'ls0001_1' 3015 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3016:11: note: in expansion of macro 'ls0001_1' 3016 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3018:23: note: in expansion of macro 'ls0001_1' 3018 | if (rwork[i + ls0001_1.lewt - 1] <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3022:19: note: in expansion of macro 'ls0001_1' 3022 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3022:55: note: in expansion of macro 'ls0001_1' 3022 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:13: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:40: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:59: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3026:19: note: in expansion of macro 'ls0001_1' 3026 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3031:9: note: in expansion of macro 'ls0001_1' 3031 | if (ls0001_1.nst == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:9: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:23: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:37: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3039:7: note: in expansion of macro 'ls0001_1' 3039 | ++ls0001_1.nhnil; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3040:9: note: in expansion of macro 'ls0001_1' 3040 | if (ls0001_1.nhnil > ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3040:26: note: in expansion of macro 'ls0001_1' 3040 | if (ls0001_1.nhnil > ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3050:57: note: in expansion of macro 'ls0001_1' 3050 | c__101, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3051:13: note: in expansion of macro 'ls0001_1' 3051 | ls0001_1.h, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3052:9: note: in expansion of macro 'ls0001_1' 3052 | if (ls0001_1.nhnil < ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3052:26: note: in expansion of macro 'ls0001_1' 3052 | if (ls0001_1.nhnil < ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3059:36: note: in expansion of macro 'ls0001_1' 3059 | c__102, &c__0, &c__1, &ls0001_1.mxhnil, &c__0, &c__0, &c_b136, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3068:35: note: in expansion of macro 'ls0001_1' 3068 | stoda_(&neq[1], &y[1], &rwork[ls0001_1.lyh], &ls0001_1.nyh, &rwork[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3068:51: note: in expansion of macro 'ls0001_1' 3068 | stoda_(&neq[1], &y[1], &rwork[ls0001_1.lyh], &ls0001_1.nyh, &rwork[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:13: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:35: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:58: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:19: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:43: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:65: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3072:15: note: in expansion of macro 'ls0001_1' 3072 | kgo = 1 - ls0001_1.kflag; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3091:5: note: in expansion of macro 'ls0001_1' 3091 | ls0001_1.init = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3092:9: note: in expansion of macro 'ls0001_1' 3092 | if (ls0001_1.meth == lsa001_1.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3095:20: note: in expansion of macro 'ls0001_1' 3095 | lsa001_1.tsw = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3096:5: note: in expansion of macro 'ls0001_1' 3096 | ls0001_1.maxord = lsa001_1.mxordn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3097:9: note: in expansion of macro 'ls0001_1' 3097 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3098:9: note: in expansion of macro 'ls0001_1' 3098 | ls0001_1.maxord = lsa001_1.mxords; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3100:9: note: in expansion of macro 'ls0001_1' 3100 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3101:15: note: in expansion of macro 'ls0001_1' 3101 | rwork[ls0001_1.lwm] = sqrt(ls0001_1.uround); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3101:36: note: in expansion of macro 'ls0001_1' 3101 | rwork[ls0001_1.lwm] = sqrt(ls0001_1.uround); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3105:5: note: in expansion of macro 'ls0001_1' 3105 | ls0001_1.jstart = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3109:9: note: in expansion of macro 'ls0001_1' 3109 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3114:9: note: in expansion of macro 'ls0001_1' 3114 | if (ls0001_1.meth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3120:44: note: in expansion of macro 'ls0001_1' 3120 | c__60, &c__107, &c__0, &c__1, &ls0001_1.nst, &c__0, &c__2, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3121:13: note: in expansion of macro 'ls0001_1' 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3121:27: note: in expansion of macro 'ls0001_1' 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3133:10: note: in expansion of macro 'ls0001_1' 3133 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3133:33: note: in expansion of macro 'ls0001_1' 3133 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3136:32: note: in expansion of macro 'ls0001_1' 3136 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3136:48: note: in expansion of macro 'ls0001_1' 3136 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3142:10: note: in expansion of macro 'ls0001_1' 3142 | if ((ls0001_1.tn - *tout) * ls0001_1.h >= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3142:33: note: in expansion of macro 'ls0001_1' 3142 | if ((ls0001_1.tn - *tout) * ls0001_1.h >= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3149:10: note: in expansion of macro 'ls0001_1' 3149 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3149:33: note: in expansion of macro 'ls0001_1' 3149 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3152:32: note: in expansion of macro 'ls0001_1' 3152 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3152:48: note: in expansion of macro 'ls0001_1' 3152 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3157:19: note: in expansion of macro 'ls0001_1' 3157 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3157:53: note: in expansion of macro 'ls0001_1' 3157 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:13: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:27: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:41: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3163:27: note: in expansion of macro 'ls0001_1' 3163 | if ((tnext - tcrit) * ls0001_1.h <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:5: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:27: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:48: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3167:5: note: in expansion of macro 'ls0001_1' 3167 | ls0001_1.jstart = -2; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3173:19: note: in expansion of macro 'ls0001_1' 3173 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3173:53: note: in expansion of macro 'ls0001_1' 3173 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3187:11: note: in expansion of macro 'ls0001_1' 3187 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3190:26: note: in expansion of macro 'ls0001_1' 3190 | y[i] = rwork[i + ls0001_1.lyh - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3192:10: note: in expansion of macro 'ls0001_1' 3192 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3201:5: note: in expansion of macro 'ls0001_1' 3201 | ls0001_1.illin = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3202:17: note: in expansion of macro 'ls0001_1' 3202 | rwork[11] = ls0001_1.hu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3203:17: note: in expansion of macro 'ls0001_1' 3203 | rwork[12] = ls0001_1.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3204:17: note: in expansion of macro 'ls0001_1' 3204 | rwork[13] = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3206:17: note: in expansion of macro 'ls0001_1' 3206 | iwork[11] = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3207:17: note: in expansion of macro 'ls0001_1' 3207 | iwork[12] = ls0001_1.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3208:17: note: in expansion of macro 'ls0001_1' 3208 | iwork[13] = ls0001_1.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3209:17: note: in expansion of macro 'ls0001_1' 3209 | iwork[14] = ls0001_1.nqu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3210:17: note: in expansion of macro 'ls0001_1' 3210 | iwork[15] = ls0001_1.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3212:17: note: in expansion of macro 'ls0001_1' 3212 | iwork[20] = ls0001_1.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3216:7: note: in expansion of macro 'ls0001_1' 3216 | ++ls0001_1.ntrep; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3217:9: note: in expansion of macro 'ls0001_1' 3217 | if (ls0001_1.ntrep < 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3244:36: note: in expansion of macro 'ls0001_1' 3244 | c__201, &c__0, &c__1, &ls0001_1.mxstep, &c__0, &c__1, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3245:13: note: in expansion of macro 'ls0001_1' 3245 | ls0001_1.tn, &c_b136, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3251:18: note: in expansion of macro 'ls0001_1' 3251 | ewti = rwork[ls0001_1.lewt + i - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3253:54: note: in expansion of macro 'ls0001_1' 3253 | c__202, &c__0, &c__1, &i, &c__0, &c__2, &ls0001_1.tn, &ewti, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3264:57: note: in expansion of macro 'ls0001_1' 3264 | c__203, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, &tolsf, | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3276:57: note: in expansion of macro 'ls0001_1' 3276 | c__204, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3277:13: note: in expansion of macro 'ls0001_1' 3277 | ls0001_1.h, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3290:34: note: in expansion of macro 'ls0001_1' 3290 | c__0, &c__0, &c__2, &ls0001_1.tn, &ls0001_1.h, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3290:48: note: in expansion of macro 'ls0001_1' 3290 | c__0, &c__0, &c__2, &ls0001_1.tn, &ls0001_1.h, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3300:65: note: in expansion of macro 'ls0001_1' 3300 | c__60, &c__206, &c__0, &c__0, &c__0, &c__0, &c__1, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3311:65: note: in expansion of macro 'ls0001_1' 3311 | c__60, &c__207, &c__0, &c__0, &c__0, &c__0, &c__1, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3320:11: note: in expansion of macro 'ls0001_1' 3320 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3322:33: note: in expansion of macro 'ls0001_1' 3322 | size = (d_1 = rwork[i + ls0001_1.lacor - 1] * rwork[i + ls0001_1.lewt | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3322:65: note: in expansion of macro 'ls0001_1' 3322 | size = (d_1 = rwork[i + ls0001_1.lacor - 1] * rwork[i + ls0001_1.lewt | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3336:11: note: in expansion of macro 'ls0001_1' 3336 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3339:26: note: in expansion of macro 'ls0001_1' 3339 | y[i] = rwork[i + ls0001_1.lyh - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3341:10: note: in expansion of macro 'ls0001_1' 3341 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3342:5: note: in expansion of macro 'ls0001_1' 3342 | ls0001_1.illin = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3343:17: note: in expansion of macro 'ls0001_1' 3343 | rwork[11] = ls0001_1.hu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3344:17: note: in expansion of macro 'ls0001_1' 3344 | rwork[12] = ls0001_1.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3345:17: note: in expansion of macro 'ls0001_1' 3345 | rwork[13] = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3347:17: note: in expansion of macro 'ls0001_1' 3347 | iwork[11] = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3348:17: note: in expansion of macro 'ls0001_1' 3348 | iwork[12] = ls0001_1.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3349:17: note: in expansion of macro 'ls0001_1' 3349 | iwork[13] = ls0001_1.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3350:17: note: in expansion of macro 'ls0001_1' 3350 | iwork[14] = ls0001_1.nqu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3351:17: note: in expansion of macro 'ls0001_1' 3351 | iwork[15] = ls0001_1.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3353:17: note: in expansion of macro 'ls0001_1' 3353 | iwork[20] = ls0001_1.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3383:34: note: in expansion of macro 'ls0001_1' 3383 | c__5, &c__0, &c__2, &ls0001_1.n, &neq[1], &c__0, &c_b136, &c_b136, | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3412:13: note: in expansion of macro 'ls0001_1' 3412 | ls0001_1.mxstep, &c__0, &c__0, &c_b136, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3416:13: note: in expansion of macro 'ls0001_1' 3416 | ls0001_1.mxhnil, &c__0, &c__0, &c_b136, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3430:34: note: in expansion of macro 'ls0001_1' 3430 | c__0, &c__0, &c__1, &ls0001_1.hmin, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3451:18: note: in expansion of macro 'ls0001_1' 3451 | ewti = rwork[ls0001_1.lewt + i - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3467:13: note: in expansion of macro 'ls0001_1' 3467 | ls0001_1.tn, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3495:9: note: in expansion of macro 'ls0001_1' 3495 | if (ls0001_1.illin == 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3498:7: note: in expansion of macro 'ls0001_1' 3498 | ++ls0001_1.illin; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:1461:49: warning: variable 'lenrws' set but not used [-Wunused-but-set-variable] 1461 | static integer leniwc, lenrwc, lf0, lenrwn, lenrws; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:1461:41: warning: variable 'lenrwn' set but not used [-Wunused-but-set-variable] 1461 | static integer leniwc, lenrwc, lf0, lenrwn, lenrws; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'prja_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3597:7: note: in expansion of macro 'ls0001_2' 3597 | ++ls0001_2.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3598:5: note: in expansion of macro 'ls0001_2' 3598 | ls0001_2.ierpj = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3599:5: note: in expansion of macro 'ls0001_2' 3599 | ls0001_2.jcur = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3600:11: note: in expansion of macro 'ls0001_2' 3600 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3600:24: note: in expansion of macro 'ls0001_2' 3600 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3601:18: note: in expansion of macro 'ls0001_2' 3601 | switch ((int)ls0001_2.miter) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3611:12: note: in expansion of macro 'ls0001_2' 3611 | lenp = ls0001_2.n * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3611:25: note: in expansion of macro 'ls0001_2' 3611 | lenp = ls0001_2.n * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:22: note: in expansion of macro 'ls0001_2' 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:65: note: in expansion of macro 'ls0001_2' 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3628:20: note: in expansion of macro 'ls0001_2' 3628 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:34: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:65: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3636:11: note: in expansion of macro 'ls0001_2' 3636 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3644:24: note: in expansion of macro 'ls0001_2' 3644 | (*f)(&neq[1], &ls0001_2.tn, &y[1], &ftem[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3645:15: note: in expansion of macro 'ls0001_2' 3645 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3651:15: note: in expansion of macro 'ls0001_2' 3651 | j1 += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:5: note: in expansion of macro 'ls0001_2' 3654 | ls0001_2.nfe += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:21: note: in expansion of macro 'ls0001_2' 3654 | ls0001_2.nfe += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3658:31: note: in expansion of macro 'ls0001_2' 3658 | lsa001_2.pdnorm = fnorm_(&ls0001_2.n, &wm[3], &ewt[1]) / abs(hl0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3661:11: note: in expansion of macro 'ls0001_2' 3661 | np1 = ls0001_2.n + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3663:11: note: in expansion of macro 'ls0001_2' 3663 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3671:21: note: in expansion of macro 'ls0001_2' 3671 | dgefa_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3671:34: note: in expansion of macro 'ls0001_2' 3671 | dgefa_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3673:9: note: in expansion of macro 'ls0001_2' 3673 | ls0001_2.ierpj = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3688:21: note: in expansion of macro 'ls0001_2' 3688 | lenp = meband * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3694:22: note: in expansion of macro 'ls0001_2' 3694 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &ml, &mu, &wm[ml3], &meband); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3708:21: note: in expansion of macro 'ls0001_2' 3708 | mba = min(mband,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3708:21: note: in expansion of macro 'ls0001_2' 3708 | mba = min(mband,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3712:20: note: in expansion of macro 'ls0001_2' 3712 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:34: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:65: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3720:15: note: in expansion of macro 'ls0001_2' 3720 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3730:24: note: in expansion of macro 'ls0001_2' 3730 | (*f)(&neq[1], &ls0001_2.tn, &y[1], &ftem[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3731:15: note: in expansion of macro 'ls0001_2' 3731 | i_3 = ls0001_2.n; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3745:26: note: in expansion of macro 'ls0001_2' 3745 | i2 = min(i_4,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3745:26: note: in expansion of macro 'ls0001_2' 3745 | i2 = min(i_4,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:5: note: in expansion of macro 'ls0001_2' 3756 | ls0001_2.nfe += mba; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3760:31: note: in expansion of macro 'ls0001_2' 3760 | lsa001_2.pdnorm = bnorm_(&ls0001_2.n, &wm[3], &meband, &ml, &mu, &ewt[1]) | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3765:11: note: in expansion of macro 'ls0001_2' 3765 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3773:30: note: in expansion of macro 'ls0001_2' 3773 | dgbfa_(&wm[3], &meband, &ls0001_2.n, &ml, &mu, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3775:9: note: in expansion of macro 'ls0001_2' 3775 | ls0001_2.ierpj = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'solsy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3835:5: note: in expansion of macro 'ls0001_2' 3835 | ls0001_2.iersl = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3836:18: note: in expansion of macro 'ls0001_2' 3836 | switch ((int)ls0001_2.miter) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3844:21: note: in expansion of macro 'ls0001_2' 3844 | dgesl_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3844:34: note: in expansion of macro 'ls0001_2' 3844 | dgesl_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3849:11: note: in expansion of macro 'ls0001_2' 3849 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3849:24: note: in expansion of macro 'ls0001_2' 3849 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3855:11: note: in expansion of macro 'ls0001_2' 3855 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3865:11: note: in expansion of macro 'ls0001_2' 3865 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3872:5: note: in expansion of macro 'ls0001_2' 3872 | ls0001_2.iersl = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3879:30: note: in expansion of macro 'ls0001_2' 3879 | dgbsl_(&wm[3], &meband, &ls0001_2.n, &ml, &mu, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'stoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3958:5: note: in expansion of macro 'ls0001_3' 3958 | ls0001_3.kflag = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3959:12: note: in expansion of macro 'ls0001_3' 3959 | told = ls0001_3.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3961:5: note: in expansion of macro 'ls0001_3' 3961 | ls0001_3.ierpj = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3962:5: note: in expansion of macro 'ls0001_3' 3962 | ls0001_3.iersl = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3963:5: note: in expansion of macro 'ls0001_3' 3963 | ls0001_3.jcur = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3964:5: note: in expansion of macro 'ls0001_3' 3964 | ls0001_3.icf = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3966:9: note: in expansion of macro 'ls0001_3' 3966 | if (ls0001_3.jstart > 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3969:9: note: in expansion of macro 'ls0001_3' 3969 | if (ls0001_3.jstart == -1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3972:9: note: in expansion of macro 'ls0001_3' 3972 | if (ls0001_3.jstart == -2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3986:5: note: in expansion of macro 'ls0001_3' 3986 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3986:21: note: in expansion of macro 'ls0001_3' 3986 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3987:5: note: in expansion of macro 'ls0001_3' 3987 | ls0001_3.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3988:5: note: in expansion of macro 'ls0001_3' 3988 | ls0001_3.l = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3989:5: note: in expansion of macro 'ls0001_3' 3989 | ls0001_3.ialth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3990:5: note: in expansion of macro 'ls0001_3' 3990 | ls0001_3.rmax = 1e4; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3991:5: note: in expansion of macro 'ls0001_3' 3991 | ls0001_3.rc = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3992:5: note: in expansion of macro 'ls0001_3' 3992 | ls0001_3.el0 = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3993:5: note: in expansion of macro 'ls0001_3' 3993 | ls0001_3.crate = .7; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3994:5: note: in expansion of macro 'ls0001_3' 3994 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3994:21: note: in expansion of macro 'ls0001_3' 3994 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3995:5: note: in expansion of macro 'ls0001_3' 3995 | ls0001_3.nslp = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3996:5: note: in expansion of macro 'ls0001_3' 3996 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3996:21: note: in expansion of macro 'ls0001_3' 3996 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4005:19: note: in expansion of macro 'ls0001_3' 4005 | cfode_(&c__2, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4005:34: note: in expansion of macro 'ls0001_3' 4005 | cfode_(&c__2, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4008:31: note: in expansion of macro 'ls0001_3' 4008 | lsa001_3.cm2[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4008:59: note: in expansion of macro 'ls0001_3' 4008 | lsa001_3.cm2[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4011:19: note: in expansion of macro 'ls0001_3' 4011 | cfode_(&c__1, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4011:34: note: in expansion of macro 'ls0001_3' 4011 | cfode_(&c__1, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4014:31: note: in expansion of macro 'ls0001_3' 4014 | lsa001_3.cm1[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4014:59: note: in expansion of macro 'ls0001_3' 4014 | lsa001_3.cm1[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4032:5: note: in expansion of macro 'ls0001_3' 4032 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4032:21: note: in expansion of macro 'ls0001_3' 4032 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4033:5: note: in expansion of macro 'ls0001_3' 4033 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4033:21: note: in expansion of macro 'ls0001_3' 4033 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4034:9: note: in expansion of macro 'ls0001_3' 4034 | if (ls0001_3.ialth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4035:9: note: in expansion of macro 'ls0001_3' 4035 | ls0001_3.ialth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4037:9: note: in expansion of macro 'ls0001_3' 4037 | if (ls0001_3.meth == lsa001_3.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:13: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:28: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:43: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4041:5: note: in expansion of macro 'ls0001_3' 4041 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4041:22: note: in expansion of macro 'ls0001_3' 4041 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4050:11: note: in expansion of macro 'ls0001_3' 4050 | i_1 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:9: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:30: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:48: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4055:5: note: in expansion of macro 'ls0001_3' 4055 | ls0001_3.nqnyh = ls0001_3.nq * *nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4055:22: note: in expansion of macro 'ls0001_3' 4055 | ls0001_3.nqnyh = ls0001_3.nq * *nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:5: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:19: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:33: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:50: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4057:5: note: in expansion of macro 'ls0001_3' 4057 | ls0001_3.el0 = ls0001_3.el[0]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4057:20: note: in expansion of macro 'ls0001_3' 4057 | ls0001_3.el0 = ls0001_3.el[0]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4058:5: note: in expansion of macro 'ls0001_3' 4058 | ls0001_3.conit = .5 / (doublereal) (ls0001_3.nq + 2); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4058:41: note: in expansion of macro 'ls0001_3' 4058 | ls0001_3.conit = .5 / (doublereal) (ls0001_3.nq + 2); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4073:9: note: in expansion of macro 'ls0001_3' 4073 | if (ls0001_3.h == ls0001_3.hold) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4073:23: note: in expansion of macro 'ls0001_3' 4073 | if (ls0001_3.h == ls0001_3.hold) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4076:10: note: in expansion of macro 'ls0001_3' 4076 | rh = ls0001_3.h / ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4076:23: note: in expansion of macro 'ls0001_3' 4076 | rh = ls0001_3.h / ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4077:5: note: in expansion of macro 'ls0001_3' 4077 | ls0001_3.h = ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4077:18: note: in expansion of macro 'ls0001_3' 4077 | ls0001_3.h = ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:21: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4085:17: note: in expansion of macro 'ls0001_3' 4085 | rh = min(rh,ls0001_3.rmax); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4085:17: note: in expansion of macro 'ls0001_3' 4085 | rh = min(rh,ls0001_3.rmax); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:39: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4097:9: note: in expansion of macro 'ls0001_3' 4097 | if (ls0001_3.meth == 2) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4104:34: note: in expansion of macro 'ls0001_3' 4104 | if (rh * pdh * 1.00001 < sm1[ls0001_3.nq - 1]) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4107:14: note: in expansion of macro 'ls0001_3' 4107 | rh = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4111:11: note: in expansion of macro 'ls0001_3' 4111 | i_1 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4114:15: note: in expansion of macro 'ls0001_3' 4114 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:5: note: in expansion of macro 'ls0001_3' 4120 | ls0001_3.h *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:5: note: in expansion of macro 'ls0001_3' 4121 | ls0001_3.rc *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4122:5: note: in expansion of macro 'ls0001_3' 4122 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4122:22: note: in expansion of macro 'ls0001_3' 4122 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4137:16: note: in expansion of macro 'ls0001_3' 4137 | if ((d_1 = ls0001_3.rc - 1., abs(d_1)) > ls0001_3.ccmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4137:46: note: in expansion of macro 'ls0001_3' 4137 | if ((d_1 = ls0001_3.rc - 1., abs(d_1)) > ls0001_3.ccmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4138:9: note: in expansion of macro 'ls0001_3' 4138 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4138:25: note: in expansion of macro 'ls0001_3' 4138 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:9: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:25: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:41: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4141:9: note: in expansion of macro 'ls0001_3' 4141 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4141:25: note: in expansion of macro 'ls0001_3' 4141 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:5: note: in expansion of macro 'ls0001_3' 4143 | ls0001_3.tn += ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:20: note: in expansion of macro 'ls0001_3' 4143 | ls0001_3.tn += ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4144:10: note: in expansion of macro 'ls0001_3' 4144 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4145:11: note: in expansion of macro 'ls0001_3' 4145 | i_2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4149:15: note: in expansion of macro 'ls0001_3' 4149 | i_1 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4156:22: note: in expansion of macro 'ls0001_3' 4156 | pnorm = vmnorm_(&ls0001_3.n, &yh1[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4170:11: note: in expansion of macro 'ls0001_3' 4170 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4175:20: note: in expansion of macro 'ls0001_3' 4175 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4176:7: note: in expansion of macro 'ls0001_3' 4176 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4177:9: note: in expansion of macro 'ls0001_3' 4177 | if (ls0001_3.ipup <= 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4189:5: note: in expansion of macro 'ls0001_3' 4189 | ls0001_3.ipup = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4190:5: note: in expansion of macro 'ls0001_3' 4190 | ls0001_3.rc = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4191:5: note: in expansion of macro 'ls0001_3' 4191 | ls0001_3.nslp = ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4191:21: note: in expansion of macro 'ls0001_3' 4191 | ls0001_3.nslp = ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4192:5: note: in expansion of macro 'ls0001_3' 4192 | ls0001_3.crate = .7; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4193:9: note: in expansion of macro 'ls0001_3' 4193 | if (ls0001_3.ierpj != 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4197:11: note: in expansion of macro 'ls0001_3' 4197 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4203:9: note: in expansion of macro 'ls0001_3' 4203 | if (ls0001_3.miter != 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4212:11: note: in expansion of macro 'ls0001_3' 4212 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4214:19: note: in expansion of macro 'ls0001_3' 4214 | savf[i] = ls0001_3.h * savf[i] - yh[i + (yh_dim1 << 1)]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4218:20: note: in expansion of macro 'ls0001_3' 4218 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4219:11: note: in expansion of macro 'ls0001_3' 4219 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4221:34: note: in expansion of macro 'ls0001_3' 4221 | y[i] = yh[i + yh_dim1] + ls0001_3.el[0] * savf[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4234:11: note: in expansion of macro 'ls0001_3' 4234 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4237:16: note: in expansion of macro 'ls0001_3' 4237 | y[i] = ls0001_3.h * savf[i] - (yh[i + (yh_dim1 << 1)] + acor[i]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4240:9: note: in expansion of macro 'ls0001_3' 4240 | if (ls0001_3.iersl < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4243:9: note: in expansion of macro 'ls0001_3' 4243 | if (ls0001_3.iersl > 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4246:20: note: in expansion of macro 'ls0001_3' 4246 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4247:11: note: in expansion of macro 'ls0001_3' 4247 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4251:34: note: in expansion of macro 'ls0001_3' 4251 | y[i] = yh[i + yh_dim1] + ls0001_3.el[0] * acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4268:31: note: in expansion of macro 'ls0001_3' 4268 | if (del <= pnorm * 100. * ls0001_3.uround) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4271:19: note: in expansion of macro 'ls0001_3' 4271 | if (m == 0 && ls0001_3.meth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4283:11: note: in expansion of macro 'ls0001_3' 4283 | d_1 = ls0001_3.crate * .2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4284:5: note: in expansion of macro 'ls0001_3' 4284 | ls0001_3.crate = max(d_1,rm); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4287:21: note: in expansion of macro 'ls0001_3' 4287 | d_1 = 1., d_2 = ls0001_3.crate * 1.5; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4288:34: note: in expansion of macro 'ls0001_3' 4288 | dcon = del * min(d_1,d_2) / (ls0001_3.tesco[ls0001_3.nq * 3 - 2] * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4288:49: note: in expansion of macro 'ls0001_3' 4288 | dcon = del * min(d_1,d_2) / (ls0001_3.tesco[ls0001_3.nq * 3 - 2] * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4289:13: note: in expansion of macro 'ls0001_3' 4289 | ls0001_3.conit); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4294:47: note: in expansion of macro 'ls0001_3' 4294 | d_2 = lsa001_3.pdest, d_3 = rate / (d_1 = ls0001_3.h * ls0001_3.el[0], | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4294:60: note: in expansion of macro 'ls0001_3' 4294 | d_2 = lsa001_3.pdest, d_3 = rate / (d_1 = ls0001_3.h * ls0001_3.el[0], | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4303:14: note: in expansion of macro 'ls0001_3' 4303 | if (m == ls0001_3.maxcor) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4310:20: note: in expansion of macro 'ls0001_3' 4310 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4311:7: note: in expansion of macro 'ls0001_3' 4311 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4323:9: note: in expansion of macro 'ls0001_3' 4323 | if (ls0001_3.miter == 0 || ls0001_3.jcur == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4323:32: note: in expansion of macro 'ls0001_3' 4323 | if (ls0001_3.miter == 0 || ls0001_3.jcur == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4326:5: note: in expansion of macro 'ls0001_3' 4326 | ls0001_3.icf = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4327:5: note: in expansion of macro 'ls0001_3' 4327 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4327:21: note: in expansion of macro 'ls0001_3' 4327 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4330:5: note: in expansion of macro 'ls0001_3' 4330 | ls0001_3.icf = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4332:5: note: in expansion of macro 'ls0001_3' 4332 | ls0001_3.rmax = 2.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4333:5: note: in expansion of macro 'ls0001_3' 4333 | ls0001_3.tn = told; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4334:10: note: in expansion of macro 'ls0001_3' 4334 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4335:11: note: in expansion of macro 'ls0001_3' 4335 | i_2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4339:15: note: in expansion of macro 'ls0001_3' 4339 | i_1 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4346:9: note: in expansion of macro 'ls0001_3' 4346 | if (ls0001_3.ierpj < 0 || ls0001_3.iersl < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4346:31: note: in expansion of macro 'ls0001_3' 4346 | if (ls0001_3.ierpj < 0 || ls0001_3.iersl < 0) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:28: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4352:16: note: in expansion of macro 'ls0001_3' 4352 | if (ncf == ls0001_3.mxncf) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4356:5: note: in expansion of macro 'ls0001_3' 4356 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4356:21: note: in expansion of macro 'ls0001_3' 4356 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4368:5: note: in expansion of macro 'ls0001_3' 4368 | ls0001_3.jcur = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4370:21: note: in expansion of macro 'ls0001_3' 4370 | dsm = del / ls0001_3.tesco[ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4370:36: note: in expansion of macro 'ls0001_3' 4370 | dsm = del / ls0001_3.tesco[ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:24: note: in expansion of macro 'ls0001_3' 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:57: note: in expansion of macro 'ls0001_3' 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4374:17: note: in expansion of macro 'ls0001_3' 4374 | ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4395:5: note: in expansion of macro 'ls0001_3' 4395 | ls0001_3.kflag = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4397:7: note: in expansion of macro 'ls0001_3' 4397 | ++ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4398:5: note: in expansion of macro 'ls0001_3' 4398 | ls0001_3.hu = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4398:19: note: in expansion of macro 'ls0001_3' 4398 | ls0001_3.hu = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4399:5: note: in expansion of macro 'ls0001_3' 4399 | ls0001_3.nqu = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4399:20: note: in expansion of macro 'ls0001_3' 4399 | ls0001_3.nqu = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4400:22: note: in expansion of macro 'ls0001_3' 4400 | lsa001_3.mused = ls0001_3.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4401:11: note: in expansion of macro 'ls0001_3' 4401 | i_2 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4403:15: note: in expansion of macro 'ls0001_3' 4403 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4406:36: note: in expansion of macro 'ls0001_3' 4406 | yh[i + j * yh_dim1] += ls0001_3.el[j - 1] * acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4413:9: note: in expansion of macro 'ls0001_3' 4413 | if (ls0001_3.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4438:9: note: in expansion of macro 'ls0001_3' 4438 | if (ls0001_3.nq > 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4441:30: note: in expansion of macro 'ls0001_3' 4441 | if (dsm > pnorm * 100. * ls0001_3.uround && lsa001_3.pdest != 0.) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:20: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4448:16: note: in expansion of macro 'ls0001_3' 4448 | nqm2 = min(ls0001_3.nq,lsa001_3.mxords); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:33: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4448:16: note: in expansion of macro 'ls0001_3' 4448 | nqm2 = min(ls0001_3.nq,lsa001_3.mxords); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4451:30: note: in expansion of macro 'ls0001_3' 4451 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4456:21: note: in expansion of macro 'ls0001_3' 4456 | rh1it = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4459:9: note: in expansion of macro 'ls0001_3' 4459 | if (ls0001_3.nq <= lsa001_3.mxords) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4466:20: note: in expansion of macro 'ls0001_3' 4466 | dm2 = vmnorm_(&ls0001_3.n, &yh[lm2p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4471:31: note: in expansion of macro 'ls0001_3' 4471 | dm2 = dsm * (lsa001_3.cm1[ls0001_3.nq - 1] / lsa001_3.cm2[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4471:63: note: in expansion of macro 'ls0001_3' 4471 | dm2 = dsm * (lsa001_3.cm1[ls0001_3.nq - 1] / lsa001_3.cm2[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4474:12: note: in expansion of macro 'ls0001_3' 4474 | nqm2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4484:5: note: in expansion of macro 'ls0001_3' 4484 | ls0001_3.meth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4485:5: note: in expansion of macro 'ls0001_3' 4485 | ls0001_3.miter = lsa001_3.jtyp; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4487:5: note: in expansion of macro 'ls0001_3' 4487 | ls0001_3.nq = nqm2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4488:5: note: in expansion of macro 'ls0001_3' 4488 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4488:18: note: in expansion of macro 'ls0001_3' 4488 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4504:30: note: in expansion of macro 'ls0001_3' 4504 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4505:28: note: in expansion of macro 'ls0001_3' 4505 | if (lsa001_3.mxordn >= ls0001_3.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4512:20: note: in expansion of macro 'ls0001_3' 4512 | dm1 = vmnorm_(&ls0001_3.n, &yh[lm1p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4517:31: note: in expansion of macro 'ls0001_3' 4517 | dm1 = dsm * (lsa001_3.cm2[ls0001_3.nq - 1] / lsa001_3.cm1[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4517:63: note: in expansion of macro 'ls0001_3' 4517 | dm1 = dsm * (lsa001_3.cm2[ls0001_3.nq - 1] / lsa001_3.cm1[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4520:12: note: in expansion of macro 'ls0001_3' 4520 | nqm1 = ls0001_3.nq; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4535:16: note: in expansion of macro 'ls0001_3' 4535 | if (dm1 <= ls0001_3.uround * 1e3 * pnorm) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4542:5: note: in expansion of macro 'ls0001_3' 4542 | ls0001_3.meth = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4543:5: note: in expansion of macro 'ls0001_3' 4543 | ls0001_3.miter = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4545:5: note: in expansion of macro 'ls0001_3' 4545 | ls0001_3.nq = nqm1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4546:5: note: in expansion of macro 'ls0001_3' 4546 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4546:18: note: in expansion of macro 'ls0001_3' 4546 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4552:7: note: in expansion of macro 'ls0001_3' 4552 | --ls0001_3.ialth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4553:9: note: in expansion of macro 'ls0001_3' 4553 | if (ls0001_3.ialth == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4556:9: note: in expansion of macro 'ls0001_3' 4556 | if (ls0001_3.ialth > 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4559:9: note: in expansion of macro 'ls0001_3' 4559 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4559:23: note: in expansion of macro 'ls0001_3' 4559 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4562:11: note: in expansion of macro 'ls0001_3' 4562 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4565:16: note: in expansion of macro 'ls0001_3' 4565 | yh[i + ls0001_3.lmax * yh_dim1] = acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4578:7: note: in expansion of macro 'ls0001_3' 4578 | --ls0001_3.kflag; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4579:5: note: in expansion of macro 'ls0001_3' 4579 | ls0001_3.tn = told; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4580:10: note: in expansion of macro 'ls0001_3' 4580 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4581:11: note: in expansion of macro 'ls0001_3' 4581 | i_1 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4585:15: note: in expansion of macro 'ls0001_3' 4585 | i_2 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4592:5: note: in expansion of macro 'ls0001_3' 4592 | ls0001_3.rmax = 2.; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:28: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4596:9: note: in expansion of macro 'ls0001_3' 4596 | if (ls0001_3.kflag <= -3) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4615:9: note: in expansion of macro 'ls0001_3' 4615 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4615:23: note: in expansion of macro 'ls0001_3' 4615 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4618:11: note: in expansion of macro 'ls0001_3' 4618 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4621:36: note: in expansion of macro 'ls0001_3' 4621 | savf[i] = acor[i] - yh[i + ls0001_3.lmax * yh_dim1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:20: note: in expansion of macro 'ls0001_3' 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:53: note: in expansion of macro 'ls0001_3' 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4624:13: note: in expansion of macro 'ls0001_3' 4624 | ls0001_3.nq * 3 - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4625:31: note: in expansion of macro 'ls0001_3' 4625 | exup = 1. / (doublereal) (ls0001_3.l + 1); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4628:30: note: in expansion of macro 'ls0001_3' 4628 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4631:9: note: in expansion of macro 'ls0001_3' 4631 | if (ls0001_3.nq == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:20: note: in expansion of macro 'ls0001_3' 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:36: note: in expansion of macro 'ls0001_3' 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4635:13: note: in expansion of macro 'ls0001_3' 4635 | ls0001_3.tesco[ls0001_3.nq * 3 - 3]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4635:28: note: in expansion of macro 'ls0001_3' 4635 | ls0001_3.tesco[ls0001_3.nq * 3 - 3]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4636:30: note: in expansion of macro 'ls0001_3' 4636 | exdn = 1. / (doublereal) ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4641:9: note: in expansion of macro 'ls0001_3' 4641 | if (ls0001_3.meth == 2) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4647:9: note: in expansion of macro 'ls0001_3' 4647 | if (ls0001_3.l < ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4647:22: note: in expansion of macro 'ls0001_3' 4647 | if (ls0001_3.l < ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4649:31: note: in expansion of macro 'ls0001_3' 4649 | d_1 = rhup, d_2 = sm1[ls0001_3.l - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4653:27: note: in expansion of macro 'ls0001_3' 4653 | d_1 = rhsm, d_2 = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4655:9: note: in expansion of macro 'ls0001_3' 4655 | if (ls0001_3.nq > 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4657:31: note: in expansion of macro 'ls0001_3' 4657 | d_1 = rhdn, d_2 = sm1[ls0001_3.nq - 2] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4673:12: note: in expansion of macro 'ls0001_3' 4673 | newq = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4677:12: note: in expansion of macro 'ls0001_3' 4677 | newq = ls0001_3.nq - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4679:9: note: in expansion of macro 'ls0001_3' 4679 | if (ls0001_3.kflag < 0 && rh > 1.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4684:12: note: in expansion of macro 'ls0001_3' 4684 | newq = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:9: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:21: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:52: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4690:11: note: in expansion of macro 'ls0001_3' 4690 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4697:5: note: in expansion of macro 'ls0001_3' 4697 | ls0001_3.ialth = 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4702:9: note: in expansion of macro 'ls0001_3' 4702 | if (ls0001_3.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4709:9: note: in expansion of macro 'ls0001_3' 4709 | if (ls0001_3.kflag == 0 && rh < 1.1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4713:9: note: in expansion of macro 'ls0001_3' 4713 | if (ls0001_3.kflag <= -2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4724:17: note: in expansion of macro 'ls0001_3' 4724 | if (newq == ls0001_3.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4728:5: note: in expansion of macro 'ls0001_3' 4728 | ls0001_3.nq = newq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4729:5: note: in expansion of macro 'ls0001_3' 4729 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4729:18: note: in expansion of macro 'ls0001_3' 4729 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4744:9: note: in expansion of macro 'ls0001_3' 4744 | if (ls0001_3.kflag == -10) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:11: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4751:5: note: in expansion of macro 'ls0001_3' 4751 | ls0001_3.h *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4752:11: note: in expansion of macro 'ls0001_3' 4752 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4757:20: note: in expansion of macro 'ls0001_3' 4757 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4758:7: note: in expansion of macro 'ls0001_3' 4758 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4759:11: note: in expansion of macro 'ls0001_3' 4759 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4762:34: note: in expansion of macro 'ls0001_3' 4762 | yh[i + (yh_dim1 << 1)] = ls0001_3.h * savf[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4764:5: note: in expansion of macro 'ls0001_3' 4764 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4764:21: note: in expansion of macro 'ls0001_3' 4764 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4765:5: note: in expansion of macro 'ls0001_3' 4765 | ls0001_3.ialth = 5; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4766:9: note: in expansion of macro 'ls0001_3' 4766 | if (ls0001_3.nq == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4769:5: note: in expansion of macro 'ls0001_3' 4769 | ls0001_3.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4770:5: note: in expansion of macro 'ls0001_3' 4770 | ls0001_3.l = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4780:5: note: in expansion of macro 'ls0001_3' 4780 | ls0001_3.kflag = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4783:5: note: in expansion of macro 'ls0001_3' 4783 | ls0001_3.kflag = -2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4786:5: note: in expansion of macro 'ls0001_3' 4786 | ls0001_3.kflag = -3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4789:5: note: in expansion of macro 'ls0001_3' 4789 | ls0001_3.rmax = 10.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4791:14: note: in expansion of macro 'ls0001_3' 4791 | r = 1. / ls0001_3.tesco[ls0001_3.nqu * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4791:29: note: in expansion of macro 'ls0001_3' 4791 | r = 1. / ls0001_3.tesco[ls0001_3.nqu * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4792:11: note: in expansion of macro 'ls0001_3' 4792 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4798:5: note: in expansion of macro 'ls0001_3' 4798 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4798:21: note: in expansion of macro 'ls0001_3' 4798 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4799:5: note: in expansion of macro 'ls0001_3' 4799 | ls0001_3.jstart = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'xerrwv_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:89:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 89 | #define eh0001_1 (*(struct eh0001_1_ *) &eh0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4964:9: note: in expansion of macro 'eh0001_1' 4964 | if (eh0001_1.mesflg == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:89:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 89 | #define eh0001_1 (*(struct eh0001_1_ *) &eh0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4969:11: note: in expansion of macro 'eh0001_1' 4969 | lun = eh0001_1.lunit; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'intdy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5463:24: note: in expansion of macro 'ls0001_2' 5463 | if (*k < 0 || *k > ls0001_2.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:10: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:24: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:38: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:64: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5467:13: note: in expansion of macro 'ls0001_2' 5467 | ls0001_2.hu); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5468:27: note: in expansion of macro 'ls0001_2' 5468 | if ((*t - tp) * (*t - ls0001_2.tn) > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5472:15: note: in expansion of macro 'ls0001_2' 5472 | s = (*t - ls0001_2.tn) / ls0001_2.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5472:30: note: in expansion of macro 'ls0001_2' 5472 | s = (*t - ls0001_2.tn) / ls0001_2.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5477:11: note: in expansion of macro 'ls0001_2' 5477 | jj1 = ls0001_2.l - *k; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5478:11: note: in expansion of macro 'ls0001_2' 5478 | i_1 = ls0001_2.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5485:11: note: in expansion of macro 'ls0001_2' 5485 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5488:29: note: in expansion of macro 'ls0001_2' 5488 | dky[i] = c * yh[i + ls0001_2.l * yh_dim1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5490:15: note: in expansion of macro 'ls0001_2' 5490 | if (*k == ls0001_2.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5493:11: note: in expansion of macro 'ls0001_2' 5493 | jb2 = ls0001_2.nq - *k; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5496:13: note: in expansion of macro 'ls0001_2' 5496 | j = ls0001_2.nq - jb; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5510:15: note: in expansion of macro 'ls0001_2' 5510 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5522:17: note: in expansion of macro 'ls0001_2' 5522 | r = pow_di(&ls0001_2.h, &i_1); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5523:11: note: in expansion of macro 'ls0001_2' 5523 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5540:13: note: in expansion of macro 'ls0001_2' 5540 | ls0001_2.tn, 0L); | ^~~~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:22:13: warning: 'RCSid' defined but not used [-Wunused-variable] 22 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'solsy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:15:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 15 | #define dgbsl_ csoda_dgbsl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:17:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 17 | #define dgesl_ csoda_dgesl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:17:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 17 | #define dgesl_ csoda_dgesl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'stoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4143 | ls0001_3.tn += ls0001_3.h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4143 | ls0001_3.tn += ls0001_3.h; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4156:13: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4156 | pnorm = vmnorm_(&ls0001_3.n, &yh1[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4218:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4218 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4246:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4246 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:15: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4466:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4466 | dm2 = vmnorm_(&ls0001_3.n, &yh[lm2p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4512:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4512 | dm1 = vmnorm_(&ls0001_3.n, &yh[lm1p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4751:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4751 | ls0001_3.h *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4120 | ls0001_3.h *= rh; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4120 | ls0001_3.h *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4121 | ls0001_3.rc *= rh; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4121 | ls0001_3.rc *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'prja_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3628:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3628 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3654 | ls0001_2.nfe += ls0001_2.n; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3654 | ls0001_2.nfe += ls0001_2.n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3712:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3712 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3756 | ls0001_2.nfe += mba; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3756 | ls0001_2.nfe += mba; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3760:23: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3760 | lsa001_2.pdnorm = bnorm_(&ls0001_2.n, &wm[3], &meband, &ml, &mu, &ewt[1]) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:14:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 14 | #define dgbfa_ csoda_dgbfa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:6: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3658:23: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3658 | lsa001_2.pdnorm = fnorm_(&ls0001_2.n, &wm[3], &ewt[1]) / abs(hl0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:16:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 16 | #define dgefa_ csoda_dgefa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:16:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 16 | #define dgefa_ csoda_dgefa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'intdy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'lsoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3382:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3382 | xerrwv_("lsoda-- istate = 3 and neq increased (i1 to i2) ", &c__50, & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3383 | c__5, &c__0, &c__2, &ls0001_1.n, &neq[1], &c__0, &c_b136, &c_b136, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3384 | 50L); | ~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2812 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:31: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3026 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3119:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3119 | xerrwv_(" at t = r1, tentative step size h = r2, step nst = i1 ", & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3120 | c__60, &c__107, &c__0, &c__1, &ls0001_1.nst, &c__0, &c__2, & | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3015 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/normrand.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perpulse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisrand.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perstep.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisson.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/pulse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/quad.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ramp.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revhyper.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsawto.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsigmo.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/romberg.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/runge.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sawtooth.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/schedule.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/seidel.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/normrand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perpulse.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisrand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perstep.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisson.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/pulse.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/quad.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ramp.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revhyper.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsawto.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsigmo.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/romberg.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/runge.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sawtooth.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/schedule.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/seidel.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/praxis.c:123:16: warning: 'c__10' defined but not used [-Wunused-variable] 123 | static integer c__10 = 10; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/praxis.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sigmoid.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sigmoid.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sigmoid.c,v 1.2 1997/08/30 14:32:20 hines Exp" ; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simeq.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simeq.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = "simeq.c,v 1.3 1999/01/04 12:46:51 hines Exp" ; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simplex.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simplex.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c: In function '_cvode_sparse': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:247:16: warning: unused variable 'j' [-Wunused-variable] 247 | int i, j, ierr; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:76:25: warning: 'spar_prmat' defined but not used [-Wunused-function] 76 | # define prmat spar_prmat | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:342:13: note: in expansion of macro 'prmat' 342 | static void prmat() | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sparse.c,v 1.7 1998/03/12 13:17:17 hines Exp"; | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/spline.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/spline.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/squarewa.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/squarewa.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c: In function '_ss_derivimplicit': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c:90:18: warning: unused variable 'i' [-Wunused-variable] 90 | int err, i; | ^ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/step.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/step.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'create_sparseobj': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:142:10: warning: unused variable 'j' [-Wunused-variable] 142 | int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function '_vector_sparse': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:287:7: warning: unused variable 'zero' [-Wunused-variable] 287 | int zero = 0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'initeqn': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:565:11: warning: unused variable 'val' [-Wunused-variable] 565 | double *val; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'vec_spar_getelm': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:626:13: warning: unused variable '_ix' [-Wunused-variable] 626 | int _ix = 0; | ^~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:41:25: warning: 'vec_spar_prmat' defined but not used [-Wunused-function] 41 | # define prmat vec_spar_prmat | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:532:13: note: in expansion of macro 'prmat' 532 | static void prmat() | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:126:15: warning: 'd' defined but not used [-Wunused-variable] 126 | static double d; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:14:13: warning: 'RCSid' defined but not used [-Wunused-variable] 14 | static char RCSid[] = "vsparse.c,v 1.5 1999/01/04 12:46:53 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/threshol.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/threshol.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/tridiag.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/tridiag.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c:2: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_struct.h:29:13: warning: 'nrn_buildjacobian_thread' declared 'static' but never defined [-Wunused-function] 29 | static void nrn_buildjacobian_thread(NewtonSpace* ns, | ^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c: In function '_ss_derivimplicit_thread': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c:53:18: warning: unused variable 'i' [-Wunused-variable] 53 | int err, i; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c: In function '_cvode_sparse_thread': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:225:16: warning: unused variable 'j' [-Wunused-variable] 225 | int i, j, ierr; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c: In function 'free_elm': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:368:19: warning: unused variable 'elnext' [-Wunused-variable] 368 | Elm *el, *elnext; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:368:14: warning: unused variable 'el' [-Wunused-variable] 368 | Elm *el, *elnext; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:305:13: warning: 'prmat' defined but not used [-Wunused-function] 305 | static void prmat(SparseObj* so) { | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sparse.c,v 1.7 1998/03/12 13:17:17 hines Exp"; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:80:13: warning: 'Translate' declared 'static' but never defined [-Wunused-function] 80 | static void Translate(); | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:82:13: warning: 'ExpandTranslationArrays' declared 'static' but never defined [-Wunused-function] 82 | static void ExpandTranslationArrays(); | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c: In function 'spPrint': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:154:23: warning: variable 'pImagElements' set but not used [-Wunused-but-set-variable] 154 | ElementPtr pElement, pImagElements[PRINTER_WIDTH/10+1]; | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c: In function 'spFileVector': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:572:25: warning: unused variable 'Err' [-Wunused-variable] 572 | register int I, Size, Err; | ^~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:67:13: warning: 'SolveComplexMatrix' declared 'static' but never defined [-Wunused-function] 67 | static void SolveComplexMatrix(); | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:68:13: warning: 'SolveComplexTransposedMatrix' declared 'static' but never defined [-Wunused-function] 68 | static void SolveComplexTransposedMatrix(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c: In function 'spPartition': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:606:25: warning: variable 'DoCmplxDirect' set but not used [-Wunused-but-set-variable] 606 | BOOLEAN *DoRealDirect, *DoCmplxDirect; | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:77:12: warning: 'FactorComplexMatrix' declared 'static' but never defined [-Wunused-function] 77 | static int FactorComplexMatrix(); | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspalloc.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspalloc.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: In function 'spDeterminant': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:997:22: warning: unused variable 'cDeterminant' [-Wunused-variable] 997 | ComplexNumber Pivot, cDeterminant; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:997:15: warning: unused variable 'Pivot' [-Wunused-variable] 997 | ComplexNumber Pivot, cDeterminant; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:22: warning: unused variable 'ni' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:18: warning: unused variable 'nr' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:12: warning: unused variable 'Norm' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: In function 'spLargestElement': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:1982:15: warning: unused variable 'cPivot' [-Wunused-variable] 1982 | ComplexNumber cPivot; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:85:13: warning: 'ScaleComplexMatrix' declared 'static' but never defined [-Wunused-function] 85 | static void ScaleComplexMatrix(); | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:86:13: warning: 'ComplexMatrixMultiply' declared 'static' but never defined [-Wunused-function] 86 | static void ComplexMatrixMultiply(); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:87:13: warning: 'ComplexTransposedMatrixMultiply' declared 'static' but never defined [-Wunused-function] 87 | static void ComplexTransposedMatrixMultiply(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:88:19: warning: 'ComplexCondition' declared 'static' but never defined [-Wunused-function] 88 | static RealNumber ComplexCondition(); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspbuild.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspbuild.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspoutput.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspoutput.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c: In function 'SolveComplexMatrix': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:290:25: warning: unused variable 'ExtVector' [-Wunused-variable] 290 | register ComplexVector ExtVector; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c: In function 'SolveComplexTransposedMatrix': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:608:26: warning: unused variable 'ExtVector' [-Wunused-variable] 608 | register ComplexVector ExtVector; | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c:2: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspfactor.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspfactor.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvband.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvbandpre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvbbdpre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvdense.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/csputils.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/csputils.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvdiag.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c: In function 'CVodeF': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c:326:21: warning: variable 'istop' set but not used [-Wunused-but-set-variable] 326 | booleantype iret, istop; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c: In function 'CVBBDPrecReInitB': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c:1125:9: warning: variable 'cvode_mem' set but not used [-Wunused-but-set-variable] 1125 | void *cvode_mem; | ^~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c: In function 'CVodeSetMinStep': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c:266:12: warning: variable 'hmax' set but not used [-Wunused-but-set-variable] 266 | realtype hmax; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvspgmr.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c: In function 'IDABand': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c:123:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 123 | int flag; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idabbdpre.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c: In function 'IDAStopTest2': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c:1343:7: warning: variable 'ier' set but not used [-Wunused-but-set-variable] 1343 | int ier; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c: In function 'IDAnls': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c:1631:15: warning: variable 'ier' set but not used [-Wunused-but-set-variable] 1631 | int retval, ier; | ^~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 91%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVode': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:1371:18: warning: variable 'wrk2' set but not used [-Wunused-but-set-variable] 1371 | N_Vector wrk1, wrk2; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:1371:12: warning: variable 'wrk1' set but not used [-Wunused-but-set-variable] 1371 | N_Vector wrk1, wrk2; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVStgrNlsNewton': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:4693:15: warning: variable 'callSetup' set but not used [-Wunused-but-set-variable] 4693 | booleantype callSetup; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVStgr1NlsNewton': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:4966:15: warning: variable 'callSetup' set but not used [-Wunused-but-set-variable] 4966 | booleantype callSetup; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVsldet': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:5622:36: warning: variable 'rd3b' set but not used [-Wunused-but-set-variable] 5622 | realtype rd2a, rd2b, rd2c, rd3a, rd3b, cest1, corr1; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:5620:12: warning: variable 'small' set but not used [-Wunused-but-set-variable] 5620 | realtype small, tem, sqmax, saqk, qp, s, sqmaxk, saqj, sqmin; | ^~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c: In function 'IDADense': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c:115:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 115 | int flag; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaic.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaio.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c: In function 'IDASpgmr': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c:157:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 157 | int flag, maxl1; | ^~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/dense.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/band.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/iterative.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/smalldense.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_serial.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/spgmr.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/sundialsmath.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 94%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c: In function 'nrnmpi_subworld_size': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c:264:13: warning: unused variable 'nb' [-Wunused-variable] 264 | int nb = nw / n; /* nrnmpi_numprocs_bbs */ | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c:55:12: warning: 'nrnmpi_is_setup_' defined but not used [-Wunused-variable] 55 | static int nrnmpi_is_setup_; | ^~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_enddata': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:208:29: warning: variable 'oldsize' set but not used [-Wunused-but-set-variable] 208 | int p, type, isize, oldsize; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'pack': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:234:27: warning: variable 'oldsize' set but not used [-Wunused-but-set-variable] 234 | int dsize, isize, oldsize; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_bbssendrecv': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:354:20: warning: unused variable 'status' [-Wunused-variable] 354 | MPI_Status status; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:353:13: warning: unused variable 'msgtag' [-Wunused-variable] 353 | int msgtag; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_probe': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:380:13: warning: unused variable 'flag' [-Wunused-variable] 380 | int flag = 0; | ^~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnrt.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 95%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'nrnmpi_spike_exchange': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:96:26: warning: unused variable 'n1' [-Wunused-variable] 96 | int i, n, novfl, n1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:96:19: warning: unused variable 'novfl' [-Wunused-variable] 96 | int i, n, novfl, n1; | ^~~~~ In function 'make_spike_type', inlined from 'nrnmpi_spike_initialize' at /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:59:2: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:45:9: warning: 's' may be used uninitialized [-Wmaybe-uninitialized] 45 | MPI_Get_address(&s, &addresses[0]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi_impl.h:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:19: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'nrnmpi_spike_initialize': /usr/include/openmpi-x86_64/mpi.h:1565:20: note: by argument 1 of type 'const void *' to 'MPI_Get_address' declared here 1565 | OMPI_DECLSPEC int MPI_Get_address(const void *location, MPI_Aint *address); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:34:22: note: 's' declared here 34 | NRNMPI_Spike s; | ^ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DNRNCMAKE -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp: In function 'wchar_t* mywstrdup(char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp:194:7: warning: unused variable 'count' [-Wunused-variable] 194 | int count = mbstowcs(ws, s, sz + 1); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp: In function 'void nrnpython_start(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp:241:22: warning: unused variable 'gilsav' [-Wunused-variable] 241 | PyGILState_STATE gilsav = PyGILState_Ensure(); | ^~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'void eval_component(PyHocObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:880:7: warning: unused variable 'j' [-Wunused-variable] 880 | int j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'PyObject* hocpickle_setstate(PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:2684:11: warning: comparison of integer expressions of different signedness: 'Py_ssize_t' {aka 'long int'} and 'long unsigned int' [-Wsign-compare] 2684 | if (len != size * sizeof(double)) { | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'PyObject* iternext_sl(PyHocObject*, hoc_Item*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:1733:1: warning: control reaches end of non-void function [-Wreturn-type] 1733 | } | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:2836:20: warning: 'hocobj_members' defined but not used [-Wunused-variable] 2836 | static PyMemberDef hocobj_members[] = {{NULL, 0, 0, 0, NULL}}; | ^~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'int NPySecObj_init(NPySecObj*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:274:15: warning: unused variable 'cell' [-Wunused-variable] 274 | PyObject* cell = 0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* NPySecObj_pt3dremove(NPySecObj*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:543:11: warning: unused variable 'n' [-Wunused-variable] 543 | int i0, n; | ^ In file included from /usr/include/python3.9/Python.h:145, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.h:24, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* NPySecObj_psection(NPySecObj*)': /usr/include/python3.9/ceval.h:24:66: warning: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations] 24 | PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:814:24: note: in expansion of macro 'PyEval_CallObject' 814 | PyObject* result = PyEval_CallObject(nrnpy_psection, arglist); | ^~~~~~~~~~~~~~~~~ /usr/include/python3.9/ceval.h:17:43: note: declared here 17 | Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* pyseg_richcmp(NPySegObj*, PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:983:13: warning: unused variable 'pysec' [-Wunused-variable] 983 | PyObject* pysec; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:984:8: warning: unused variable 'result' [-Wunused-variable] 984 | bool result = false; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* pysec_richcmp(NPySecObj*, PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:996:13: warning: unused variable 'pysec' [-Wunused-variable] 996 | PyObject* pysec; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:997:8: warning: unused variable 'result' [-Wunused-variable] 997 | bool result = false; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* var_of_mech_next(NPyVarOfMechIter*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1685:16: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1685 | if (self->i_ >= self->msym_->s_varn) { | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'int segment_setattro(NPySegObj*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1847:9: warning: unused variable 'nseg' [-Wunused-variable] 1847 | int nseg; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* nrnpy_nrn()': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2286:7: warning: unused variable 'i' [-Wunused-variable] 2286 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'void nrnpy_reg_mech(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2455:17: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 2455 | for (i = 0; i < mf->sym->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2461:6: warning: 'void nrnpy_unreg_mech(int)' defined but not used [-Wunused-function] 2461 | void nrnpy_unreg_mech(int type) { | ^~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'char* pickle(PyObject*, size_t*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:667:21: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 667 | for (int i = 0; i < *size; ++i) { | ~~^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'PyObject* py_broadcast(PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:834:7: warning: unused variable 'np' [-Wunused-variable] 834 | int np = nrnmpi_numprocs; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'Object* py_alltoall_type(int, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:986:25: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 986 | for (int j = 0; j < sz; ++j) { | ~~^~~~ In file included from /usr/include/python3.9/pytime.h:6, from /usr/include/python3.9/Python.h:85, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.h:24, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:7: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'hpoasgn': /usr/include/python3.9/object.h:422:25: warning: 'poright' may be used uninitialized in this function [-Wmaybe-uninitialized] 422 | if (--op->ob_refcnt != 0) { | ~~~~~~~~~~~~~~~~^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:324:13: note: 'poright' was declared here 324 | PyObject* poright; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'py_alltoall_type': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:1051:23: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized] 1051 | nrnmpi_char_scatterv(s, scnt, sdispl, r, rcnt[0], root); | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 96%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'int ECS_insert(int, PyHocObject*, int, int, int, double, double, double, double, double, double, PyHocObject*, PyHocObject*, int, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:173:9: warning: unused variable 'i' [-Wunused-variable] 173 | int i = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void ics_set_grid_concentrations(int, int, int64_t*, int64_t*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:419:13: warning: unused variable 'j' [-Wunused-variable] 419 | ssize_t j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:420:13: warning: unused variable 'num_nodes' [-Wunused-variable] 420 | ssize_t num_nodes; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:423:9: warning: unused variable 'total_surface_nodes' [-Wunused-variable] 423 | int total_surface_nodes = nodes_per_seg_start_indices[n]; //nodes_per_seg_lengths has length n + 1 since it has a 0 as the first start index | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void ics_set_grid_currents(int, int, int64_t*, int64_t*, PyObject*, double*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:446:16: warning: unused variable 'j' [-Wunused-variable] 446 | ssize_t i, j, num_nodes; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:446:19: warning: unused variable 'num_nodes' [-Wunused-variable] 446 | ssize_t i, j, num_nodes; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:448:9: warning: unused variable 'total_surface_nodes' [-Wunused-variable] 448 | int total_surface_nodes = nodes_per_seg_start_indices[n]; //nodes_per_seg_lengths has length n + 1 since it has a 0 as the first start index | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'int remove(Grid_node**, Grid_node*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:586:9: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 586 | delete temp; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:596:5: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 596 | delete delete_me; | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void empty_list(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:620:9: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 620 | delete old_head; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'int Grid_node::insert(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:646:16: warning: unused variable 'grid' [-Wunused-variable] 646 | Grid_node* grid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:648:16: warning: variable 'save' set but not used [-Wunused-but-set-variable] 648 | Grid_node *save; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'virtual void ECS_Grid_node::do_grid_currents(double*, double, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:727:21: warning: unused variable 'c' [-Wunused-variable] 727 | Current_Triple* c; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'virtual void ICS_Grid_node::scatter_grid_concentrations()': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:1402:13: warning: variable 'my_states' set but not used [-Wunused-but-set-variable] 1402 | double* my_states; | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'ReactGridData* create_threaded_reactions(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:256:30: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 256 | for(i = 0; i < react->region_size; i++) | ~~^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void* ecs_do_reactions(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:358:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 358 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:366:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 366 | for(k = 0; j < react->num_species_involved + react->num_params_involved; k++, j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:374:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 374 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:381:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 381 | for(k = 0; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:397:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 397 | for (j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:399:50: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 399 | for(k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:403:55: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 403 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:413:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 413 | for (j = 0; j < react->num_species_involved - 1; j ++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:415:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 415 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:418:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 418 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:430:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 430 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:439:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 439 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:511:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 511 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:517:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 517 | for(k = 0; j < react->num_species_involved + react->num_params_involved; k++, j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:523:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 523 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:530:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 530 | for(k = 0; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:546:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 546 | for (j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:548:50: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 548 | for(k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:552:55: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 552 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:562:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 562 | for (j = 0; j < react->num_species_involved - 1; j ++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:564:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 564 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' 1/src/nrnpython/rxd_extracellular.cpp:567:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 567 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:579:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 579 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:588:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 588 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void _rhs_variable_step_ecs(double, const double*, double*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:735:26: warning: unused variable 'orig_1d_states' [-Wunused-variable] 735 | double const * const orig_1d_states = states + _cvode_offset; | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:738:19: warning: unused variable 'orig_1d_ydot' [-Wunused-variable] 738 | double* const orig_1d_ydot = ydot + _cvode_offset; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void _rhs_variable_step_helper(Grid_node*, const double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:19: warning: unused variable 'bc_x' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:25: warning: unused variable 'bc_y' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:31: warning: unused variable 'bc_z' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:816:12: warning: unused variable 'bc' [-Wunused-variable] 816 | double bc; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:15:12: warning: 'int dg_adi(Grid_node*)' declared 'static' but never defined [-Wunused-function] 15 | static int dg_adi(Grid_node*); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function '_rhs_variable_step_helper(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:813:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 813 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'ics_ode_solve(double, double*, double const*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:993:16: warning: 'grid_size' may be used uninitialized in this function [-Wmaybe-uninitialized] 993 | RHS += grid_size; | ^~~~~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void rxd_include_node_flux1D(int, long int*, double*, PyObject**)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:331:9: warning: unused variable 'i' [-Wunused-variable] 331 | int i; | ^ In file included from /usr/include/python3.9/Python.h:145, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:11, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void apply_node_flux(int, long int*, double*, PyObject**, double, double*)': /usr/include/python3.9/ceval.h:24:66: warning: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations] 24 | PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:376:26: note: in expansion of macro 'PyEval_CallObject' 376 | result = PyEval_CallObject(source[i], NULL); | ^~~~~~~~~~~~~~~~~ /usr/include/python3.9/ceval.h:17:43: note: declared here 17 | Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void ode_solve(double, double, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:636:29: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 636 | for(i = 0, j = 0; i < num_states; i++) | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:638:18: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare] 638 | if(i == zvi[j]) | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:661:29: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 661 | for(i = 0, j = 0; i < num_states; i++) | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:663:18: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare] 663 | if(i == zvi[j]) | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void setup_currents(int, int, int*, int*, double*, PyHocObject**, int*, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:726:28: warning: variable 'idx' set but not used [-Wunused-but-set-variable] 726 | int i, j, k, id, side, idx; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void get_reaction_rates(ICSReactions*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1820:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1820 | if(react->vptrs != NULL) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1823:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1823 | react->reaction(states_for_reaction, params_for_reaction, result_array, mc_mult, ecs_states_for_reaction, ecs_params_for_reaction, ecs_result, flux, v); | ^~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1210:13: warning: 'void free_SpeciesIndexList()' defined but not used [-Wunused-function] 1210 | static void free_SpeciesIndexList() | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'solve_reaction(ICSReactions*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1910:13: warning: 'ecs_params_for_reaction' may be used uninitialized in this function [-Wmaybe-uninitialized] 1910 | double* ecs_params_for_reaction; | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2111:54: warning: 'ecs_result_dx' may be used uninitialized in this function [-Wmaybe-uninitialized] 2111 | pd = (ecs_result_dx[jac_i] - ecs_result[jac_i])/dx; | ~~~~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2111:74: warning: 'ecs_result' may be used uninitialized in this function [-Wmaybe-uninitialized] 2111 | pd = (ecs_result_dx[jac_i] - ecs_result[jac_i])/dx; | ~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2084:63: warning: 'ecs_states_for_reaction_dx' may be used uninitialized in this function [-Wmaybe-uninitialized] 2084 | ecs_states_for_reaction_dx[i] += dx; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1983:48: warning: 'ecs_states_for_reaction' may be used uninitialized in this function [-Wmaybe-uninitialized] 1983 | ecs_states_for_reaction[i] = cvode_states[react->ecs_index[segment][i]]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2008:24: warning: 'mc_mult' may be used uninitialized in this function [-Wmaybe-uninitialized] 2008 | mc_mult[i] = react->mc_multiplier[i][segment]; | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_find_deltas(long int, long int, long int, double*, long int*, long int*, double*, double, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:166:12: warning: unused variable 'dt' [-Wunused-variable] 166 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_find_deltas(long int, long int, long int, double*, long int*, long int*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:218:12: warning: unused variable 'dt' [-Wunused-variable] 218 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void* do_ics_deltas(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:267:12: warning: unused variable 'dt' [-Wunused-variable] 267 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_x_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:323:10: warning: unused variable 'N' [-Wunused-variable] 323 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_y_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:390:10: warning: unused variable 'N' [-Wunused-variable] 390 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_z_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:454:10: warning: unused variable 'N' [-Wunused-variable] 454 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_x(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:523:10: warning: unused variable 'N' [-Wunused-variable] 523 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_y(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:586:10: warning: unused variable 'N' [-Wunused-variable] 586 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_z(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:650:10: warning: unused variable 'N' [-Wunused-variable] 650 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void variable_step_delta(long int, long int, long int, double*, long int*, long int*, const double*, double, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:810:12: warning: variable 'prev_dc' set but not used [-Wunused-but-set-variable] 810 | double prev_dc, current_dc, next_dc; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:96:12: warning: 'int solve_dd_clhs_tridiag(int, double, double, double, double, double, double, double, double*, double*)' defined but not used [-Wunused-function] 96 | static int solve_dd_clhs_tridiag(const int N, const double l_diag, const double diag, | ^~~~~~~~~~~~~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 97%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_marching_cubes.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 98%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_llgramarea.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 97%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:4: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp: In function '_rhs_variable_step_helper_tort(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:770:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 770 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp: In function '_rhs_variable_step_helper_vol(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:879:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 879 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 98%] Linking CXX shared library ../../lib/libnrniv.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv_lib.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicxx -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,libnrniv.so.0.0.0 -o ../../lib/libnrniv.so.0.0.0 CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o CMakeFiles/nrniv_lib.dir/bbs.cpp.o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o CMakeFiles/nrniv_lib.dir/classreg.cpp.o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o CMakeFiles/nrniv_lib.dir/datapath.cpp.o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o CMakeFiles/nrniv_lib.dir/kschan.cpp.o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o CMakeFiles/nrniv_lib.dir/linmod.cpp.o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o CMakeFiles/nrniv_lib.dir/netpar.cpp.o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o CMakeFiles/nrniv_lib.dir/occvode.cpp.o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o CMakeFiles/nrniv_lib.dir/partrans.cpp.o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o CMakeFiles/nrniv_lib.dir/savstate.cpp.o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o CMakeFiles/nrniv_lib.dir/shape.cpp.o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o CMakeFiles/nrniv_lib.dir/singlech.cpp.o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o CMakeFiles/nrniv_lib.dir/symdir.cpp.o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E cmake_symlink_library ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsdirectmpi.cpp:35:7: warning: type 'struct KeepArgs' violates the C++ One Definition Rule [-Wodr] 35 | class KeepArgs : public std::map{}; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:25:7: note: a type with different bases is defined in another translation unit 25 | class KeepArgs : public std::map{}; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: warning: type 'struct OcSparseMatrix' violates the C++ One Definition Rule [-Wodr] 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: a different type is defined in another translation unit 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: the first difference of corresponding definitions is field 'm_' 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: a field of same name but different type is defined in another translation unit 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: type 'struct SPMAT' should match type 'void' 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:185:9: warning: type 'union ' violates the C++ One Definition Rule [-Wodr] 185 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:38:11: note: a different type is defined in another translation unit 38 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:188:12: note: the first difference of corresponding definitions is field 'pstr_' 188 | char** pstr_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:41:15: note: a field with different name is defined in another translation unit 41 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: warning: type 'struct PyHocObject' violates the C++ One Definition Rule [-Wodr] 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:57:3: note: a different type is defined in another translation unit 57 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:184:25: note: the first difference of corresponding definitions is field 'ho_' 184 | PyObject_HEAD Object* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:37:11: note: a field of same name but different type is defined in another translation unit 37 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: note: type 'struct Object' should match type 'void' 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:13: warning: type of 's_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: return value type mismatch 174 | int s_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: 's_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:23: warning: type of 'do_fio' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: return value type mismatch 184 | int do_fio() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: 'do_fio' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:33: warning: type of 'e_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: return value type mismatch 189 | int e_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: 'e_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:230:14: warning: type of 'oc_restore_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 230 | void oc_restore_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: type mismatch in parameter 5 445 | void oc_restore_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: 'oc_restore_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:229:14: warning: type of 'oc_save_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 229 | void oc_save_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: type mismatch in parameter 5 428 | void oc_save_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: 'oc_save_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:285:13: warning: type of 'nrn_threads_create' does not match original declaration [-Wlto-type-mismatch] 285 | extern void nrn_threads_create(int); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type mismatch in parameter 2 488 | void nrn_threads_create(int n, int parallel) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type 'int' should match type 'void' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: 'nrn_threads_create' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1864:6: warning: type of 'nrnthread_get_trajectory_requests' does not match original declaration [-Wlto-type-mismatch] 1864 | void nrnthread_get_trajectory_requests(int tid, int& bsize, int& ntrajec, void**& vpr, int*& types, int*& indices, double**& pvars, double**& varrays); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: type mismatch in parameter 9 5561 | void nrnthread_get_trajectory_requests(int tid, int& bsize, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: 'nrnthread_get_trajectory_requests' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:33:20: warning: 'nrnmpi_multisplit' violates the C++ One Definition Rule [-Wodr] 33 | extern int nrnmpi_multisplit(Section*, double x, int sid, int backbonestyle); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: return value type mismatch 310 | void nrnmpi_multisplit(Section* sec, double x, int sid, int backbone_style) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: type 'void' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: 'nrnmpi_multisplit' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: 'at_time' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:78:17: warning: type of 'N_VNew_NrnParallelLD' does not match original declaration [-Wlto-type-mismatch] 78 | extern N_Vector N_VNew_NrnParallelLD(int comm, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c:180:10: note: type mismatch in parameter 1 180 | N_Vector N_VNew_NrnParallelLD(MPI_Comm comm, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c:180:10: note: type 'struct ompi_communicator_t *' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c:180:10: note: 'N_VNew_NrnParallelLD' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c:180:10: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:76:17: warning: type of 'N_VNew_Parallel' does not match original declaration [-Wlto-type-mismatch] 76 | extern N_Vector N_VNew_Parallel(int comm, long int local_length, | ^ /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c:161:10: note: type mismatch in parameter 1 161 | N_Vector N_VNew_Parallel(MPI_Comm comm, | ^ /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c:161:10: note: type 'struct ompi_communicator_t *' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c:161:10: note: 'N_VNew_Parallel' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c:161:10: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrncvode.h:20:13: warning: type of 'nrn_random_play' does not match original declaration [-Wlto-type-mismatch] 20 | extern void nrn_random_play(NrnThread*); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: type mismatch in parameter 1 583 | void nrn_random_play() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: 'nrn_random_play' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp:51:41: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 51 | bucketCount = new int[howManyBuckets]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'mk_cellgroups', inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:648:40: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 648 | cgs[i].output_ps = new PreSyn*[npre]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'mk_cgs_netcon_info', inlined from 'mk_cellgroups' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:722:21, inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:558:44: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 558 | cgs[i].netcons = new NetCon*[nccnt[i]+1]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'gapsolve': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] 619 | cmplx_spSolve(m_, rb-1, rx1-1, jb-1, jx1-1); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 2 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 3 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 4 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 5 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:135:1: note: in a call to function 'cmplx_spSolve' 135 | spSolve( eMatrix, RHS, Solution IMAG_VECTORS ) | ^ In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '__fgets_alias' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^ /usr/include/bits/stdio2.h:251:14: note: in a call to function '__fgets_alias' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:110:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 110 | implementPool(TQItemPool, TQItem) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp:12:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 12 | implementPool(HocEventPool, HocEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: In function 'nrnmpi_setup_transfer': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:837:41: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 837 | outsrc_buf_ = new double[szalloc]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:838:39: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 838 | poutsrc_ = new double*[szalloc]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'nrnthread_dat2_3.part.0': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1385:24: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1385 | delays = new double[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:302:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 302 | implementStructPool(SectionPool, Section) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:152:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 152 | DoubleArrayPool** p1 = new DoubleArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:153:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 153 | DatumArrayPool** p2 = new DatumArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:449:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 449 | implementPool(SelfEventPool, SelfEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'init_global': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1773:71: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1773 | ml->nodelist = new Node*[ml->nodecount]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp: In member function 'rate': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp:74:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 74 | int* s = new int[size]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2434:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2434 | smap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2435:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2435 | rmap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'v_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3144:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 3144 | sid0i = new int[nback]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'exchange_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:603:48: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 603 | MultiSplit** vec2ms = new MultiSplit*[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1226:57: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1226 | m.nd_rt_index_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1227:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1227 | m.nd_rt_index_th_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:811:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 811 | int* rthost = new int[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:708:40: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 708 | int* connects2short = new int[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'settype': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1456:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1456 | Symbol** ligands = new Symbol*[nligand_+1]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'setstructure': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1895:47: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1895 | gc_ = new KSGateComplex[ngate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1899:50: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1899 | trans_ = new KSTransition[ntrans_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1903:45: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1903 | state_ = new KSState[nstate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: '__builtin_strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^ make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 98%] Built target nrniv_lib make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/depend /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/hoc_module.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/hoc_module.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/hoc_module.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/hoc_module.dir/depend.internal". Scanning dependencies of target hoc_module make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nrniv.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nrniv.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nrniv.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nrniv.dir/depend.internal". Scanning dependencies of target nrniv make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 98%] Generating inithoc.cpp cd /builddir/build/BUILD/nrn-7.8.1/src/nrnpython && cp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/inithoc.cpp /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/inithoc.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/constants.py /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/constants.py cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/demo /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/demo make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 98%] Built target hoc_module make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/testneuron.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/testneuron.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/testneuron.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/testneuron.dir/depend.internal". Scanning dependencies of target testneuron make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 98%] Building CXX object src/nrniv/CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++98 -o CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrnmain.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 98%] Building C object src/nrniv/CMakeFiles/nrniv.dir/__/oc/ockludge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ockludge.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Building C object src/nrniv/CMakeFiles/nrniv.dir/__/oc/modlreg.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/modlreg.c make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Linking CXX executable ../../bin/nrniv cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicxx -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -o ../../bin/nrniv ../../lib/libnrniv.so.0.0.0 -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Built target nrniv make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/rxdmod.dir/DependInfo.cmake --color= Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/rxdmod.dir/DependInfo.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/rxdmod.dir/depend.internal". Dependee "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/rxdmod.dir/depend.internal". Scanning dependencies of target rxdmod make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/test/rxd && /usr/bin/cmake -E env NEURONHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn NRNHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi LD_LIBRARY_PATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib:/usr/lib64/openmpi/lib PYTHONPATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib/python:/builddir/build/BUILD/nrn-7.8.1/test/rxd: /bin/bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nrnivmodl ./ecs /builddir/build/BUILD/nrn-7.8.1/test/rxd ./ecs/pump.mod pump.mod make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> NMODL pump.mod MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib \ /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl pump.mod make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> Compiling mod_func.c mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/include -fPIC -c mod_func.c -o mod_func.o make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> Compiling x86_64/pump.c (cd .. ; mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/include -fPIC -c x86_64/pump.c -o x86_64/pump.o) make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' => LINKING library x86_64/libnrnmech.so Mod files: pump.mod (cd .. ; mpicxx -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -shared -fPIC -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -I /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/include -o x86_64/libnrnmech.so -Wl,-soname,libnrnmech.so \ x86_64/mod_func.o x86_64/pump.o -L/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib -lnrniv -Wl,-rpath,/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib -lreadline -lcurses -lform -lpython3 -lX11 -lXext) (cd .. ; rm -f x86_64/.libs/libnrnmech.so ; mkdir -p x86_64/.libs ; ln -s ../../x86_64/libnrnmech.so x86_64/.libs/libnrnmech.so) make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' Successfully created x86_64/special which: no xcrun in (/usr/lib64/openmpi/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin) ls: cannot access './ecs/*.inc': No such file or directory make[3]: warning: -j4 forced in submake: resetting jobserver mode. Translating pump.mod into pump.c Thread Safe x86_64/pump.c:101:34: warning: missing braces around initializer [-Wmissing-braces] 101 | static VoidFunc hoc_intfunc[] = { | ^ 102 | "setdata_pump", _hoc_setdata, | { } 103 | 0, 0 | { 104 | }; | } x86_64/pump.c:114:44: warning: missing braces around initializer [-Wmissing-braces] 114 | static HocParmLimits _hoc_parm_limits[] = { | ^ 115 | 0,0,0 | { { 116 | }; | }} x86_64/pump.c:117:42: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmUnits _hoc_parm_units[] = { | ^ 118 | "imax_pump", "mA/cm2", | { } 119 | "Kd_pump", "mM", | { } 120 | "ix_pump", "mA/cm2", | { } 121 | "i_pump", "mA/cm2", | { } 122 | 0,0 | { 123 | }; | } x86_64/pump.c:125:33: warning: missing braces around initializer [-Wmissing-braces] 125 | static DoubScal hoc_scdoub[] = { | ^ 126 | "imax_pump", &imax_pump, | { } 127 | "Kd_pump", &Kd_pump, | { } 128 | 0,0 | { 129 | }; | } x86_64/pump.c:130:31: warning: missing braces around initializer [-Wmissing-braces] 130 | static DoubVec hoc_vdoub[] = { | ^ 131 | 0,0,0 | { 132 | }; | } x86_64/pump.c: In function '_pump_reg': x86_64/pump.c:182:13: warning: unused variable '_vectorized' [-Wunused-variable] 182 | int _vectorized = 1; | ^~~~~~~~~~~ x86_64/pump.c: In function 'initmodel': x86_64/pump.c:240:18: warning: unused variable '_save' [-Wunused-variable] 240 | int _i; double _save;{ | ^~~~~ x86_64/pump.c:240:7: warning: unused variable '_i' [-Wunused-variable] 240 | int _i; double _save;{ | ^~ x86_64/pump.c: In function '_nrn_jacob__pump': x86_64/pump.c:328:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ x86_64/pump.c:328:20: warning: unused variable '_ppvar' [-Wunused-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ x86_64/pump.c: In function '_initlists': x86_64/pump.c:359:6: warning: unused variable '_i' [-Wunused-variable] 359 | int _i; static int _first = 1; | ^~ x86_64/pump.c:358:21: warning: unused variable '_p' [-Wunused-variable] 358 | double _x; double* _p = &_x; | ^~ At top level: x86_64/pump.c:355:13: warning: 'terminal' defined but not used [-Wunused-function] 355 | static void terminal(){} | ^~~~~~~~ x86_64/pump.c:215:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 215 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ x86_64/pump.c:213:12: warning: '_ninits' defined but not used [-Wunused-variable] 213 | static int _ninits = 0; | ^~~~~~~ x86_64/pump.c:212:12: warning: 'error' defined but not used [-Wunused-variable] 212 | static int error; | ^~~~~ x86_64/pump.c:210:14: warning: 'modelname' defined but not used [-Wunused-variable] 210 | static char *modelname = ""; | ^~~~~~~~~ x86_64/pump.c:209:12: warning: '_reset' defined but not used [-Wunused-variable] 209 | static int _reset; | ^~~~~~ x86_64/pump.c:133:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 133 | static double _sav_indep; | ^~~~~~~~~~ make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Built target rxdmod make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Building CXX object test/CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/test -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/oc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/test/unit_tests/oc/hoc_interpreter.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 98%] Building CXX object test/CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/test -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/oc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -o CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/test/unit_tests/unit_test.cpp make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [100%] Linking CXX executable ../bin/test/testneuron cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/testneuron.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicxx -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -o ../bin/test/testneuron ../lib/libnrniv.so.0.0.0 -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [100%] Built target testneuron make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/CMakeFiles 0 make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' + . /etc/profile.d/modules.sh ++ . /etc/profile.d/00-modulepath.sh +++ '[' -z /etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ']' +++ : ++ '[' -z '' ']' ++ LMOD_ALLOW_ROOT_USE=yes ++ '[' -n '' ']' ++ '[' yes '!=' yes ']' ++ '[' -z /usr/share/modulefiles ']' ++ findExec PS_CMD /usr/bin/ps ps ++ Nm=PS_CMD ++ confPath=/usr/bin/ps ++ execNm=ps ++ eval PS_CMD=/usr/bin/ps +++ PS_CMD=/usr/bin/ps ++ '[' '!' -x /usr/bin/ps ']' ++ unset Nm confPath execNm ++ findExec EXPR_CMD /usr/bin/expr expr ++ Nm=EXPR_CMD ++ confPath=/usr/bin/expr ++ execNm=expr ++ eval EXPR_CMD=/usr/bin/expr +++ EXPR_CMD=/usr/bin/expr ++ '[' '!' -x /usr/bin/expr ']' ++ unset Nm confPath execNm ++ findExec BASENAME_CMD /usr/bin/basename basename ++ Nm=BASENAME_CMD ++ confPath=/usr/bin/basename ++ execNm=basename ++ eval BASENAME_CMD=/usr/bin/basename +++ BASENAME_CMD=/usr/bin/basename ++ '[' '!' -x /usr/bin/basename ']' ++ unset Nm confPath execNm ++ unset -f findExec +++ /usr/bin/ps -p 136 -ocomm= ++ my_shell=sh +++ /usr/bin/expr sh : '-*\(.*\)' ++ my_shell=sh +++ /usr/bin/basename sh ++ my_shell=sh ++ '[' -f /usr/share/lmod/lmod/init/sh ']' ++ . /usr/share/lmod/lmod/init/sh +++ LMOD_ROOT=/usr/share/lmod +++ LMOD_PKG=/usr/share/lmod/lmod +++ LMOD_DIR=/usr/share/lmod/lmod/libexec/ +++ LMOD_CMD=/usr/share/lmod/lmod/libexec/lmod +++ MODULESHOME=/usr/share/lmod/lmod +++ export LMOD_CMD +++ export LMOD_PKG +++ export LMOD_DIR +++ export MODULESHOME +++ export LMOD_DIR ++ unset my_shell PS_CMD EXPR_CMD BASENAME_CMD MODULEPATH_INIT LMOD_ALLOW_ROOT_USE + module unload mpi/openmpi-x86_64 ++ /usr/share/lmod/lmod/libexec/lmod sh unload mpi/openmpi-x86_64 + eval unset '__LMOD_REF_COUNT_LD_LIBRARY_PATH;' unset 'LD_LIBRARY_PATH;' unset '__LMOD_REF_COUNT_LOADEDMODULES;' unset 'LOADEDMODULES;' '__LMOD_REF_COUNT_MANPATH=/usr/share/lmod/lmod/share/man:1;' export '__LMOD_REF_COUNT_MANPATH;' 'MANPATH=/usr/share/lmod/lmod/share/man;' export 'MANPATH;' 'MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core;' export 'MODULEPATH;' unset 'MPI_BIN;' unset 'MPI_COMPILER;' unset 'MPI_FORTRAN_MOD_DIR;' unset 'MPI_HOME;' unset 'MPI_INCLUDE;' unset 'MPI_LIB;' unset 'MPI_MAN;' unset 'MPI_PYTHON3_SITEARCH;' unset 'MPI_SUFFIX;' unset 'MPI_SYSCONFIG;' '__LMOD_REF_COUNT_PATH=/builddir/.local/bin:1\;/builddir/bin:1\;/usr/bin:1\;/bin:1\;/usr/sbin:1\;/sbin:1\;/usr/local/sbin:1;' export '__LMOD_REF_COUNT_PATH;' 'PATH=/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin;' export 'PATH;' '__LMOD_REF_COUNT_PKG_CONFIG_PATH=/usr/lib64/pkgconfig:1\;/usr/share/pkgconfig:1;' export '__LMOD_REF_COUNT_PKG_CONFIG_PATH;' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig;' export 'PKG_CONFIG_PATH;' unset '__LMOD_REF_COUNT__LMFILES_;' unset '_LMFILES_;' '_ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXt9LG1wYXRoQT17Ii9ldGMvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzIiwiL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eCIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvQ29yZSIsIi91c3Ivc2hhcmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0sWyJzeXN0ZW1CYXNlTVBBVEgiXT0iL2V0Yy9tb2R1bGVmaWxlczovdXNyL3NoYXJlL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvTGludXg6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9Db3JlOi91c3Ivc2hh;' export '_ModuleTable001_;' '_ModuleTable002_=cmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0=;' export '_ModuleTable002_;' '_ModuleTable_Sz_=2;' export '_ModuleTable_Sz_;' ++ unset __LMOD_REF_COUNT_LD_LIBRARY_PATH ++ unset LD_LIBRARY_PATH ++ unset __LMOD_REF_COUNT_LOADEDMODULES ++ unset LOADEDMODULES ++ __LMOD_REF_COUNT_MANPATH=/usr/share/lmod/lmod/share/man:1 ++ export __LMOD_REF_COUNT_MANPATH ++ MANPATH=/usr/share/lmod/lmod/share/man ++ export MANPATH ++ MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ++ export MODULEPATH ++ unset MPI_BIN ++ unset MPI_COMPILER ++ unset MPI_FORTRAN_MOD_DIR ++ unset MPI_HOME ++ unset MPI_INCLUDE ++ unset MPI_LIB ++ unset MPI_MAN ++ unset MPI_PYTHON3_SITEARCH ++ unset MPI_SUFFIX ++ unset MPI_SYSCONFIG ++ __LMOD_REF_COUNT_PATH='/builddir/.local/bin:1;/builddir/bin:1;/usr/bin:1;/bin:1;/usr/sbin:1;/sbin:1;/usr/local/sbin:1' ++ export __LMOD_REF_COUNT_PATH ++ PATH=/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin ++ export PATH ++ __LMOD_REF_COUNT_PKG_CONFIG_PATH='/usr/lib64/pkgconfig:1;/usr/share/pkgconfig:1' ++ export __LMOD_REF_COUNT_PKG_CONFIG_PATH ++ PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig ++ export PKG_CONFIG_PATH ++ unset __LMOD_REF_COUNT__LMFILES_ ++ unset _LMFILES_ ++ _ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXt9LG1wYXRoQT17Ii9ldGMvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzIiwiL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eCIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvQ29yZSIsIi91c3Ivc2hhcmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0sWyJzeXN0ZW1CYXNlTVBBVEgiXT0iL2V0Yy9tb2R1bGVmaWxlczovdXNyL3NoYXJlL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvTGludXg6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9Db3JlOi91c3Ivc2hh ++ export _ModuleTable001_ ++ _ModuleTable002_=cmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0= ++ export _ModuleTable002_ ++ _ModuleTable_Sz_=2 ++ export _ModuleTable_Sz_ + RPM_EC=0 ++ jobs -p Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.HOZvrX + exit 0 + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 ++ dirname /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 + cd nrn-7.8.1 + export MPI_LIB=/usr/lib64 + MPI_LIB=/usr/lib64 + export MPI_COMPILE_TYPE= + MPI_COMPILE_TYPE= + export MPI_PYTHON3_SITEARCH=/usr/lib64/python3.9/site-packages + MPI_PYTHON3_SITEARCH=/usr/lib64/python3.9/site-packages + export MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu + MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu + export MPI_HOME=/usr + MPI_HOME=/usr + export MPI_BIN=/usr/bin + MPI_BIN=/usr/bin *** INSTALLING neuron-7.8.1 *** + export MPI_SUFFIX= + MPI_SUFFIX= + echo + echo '*** INSTALLING neuron-7.8.1 ***' + echo + /usr/bin/make install DESTDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 'INSTALL=/usr/bin/install -p' -C x86_64-redhat-linux-gnu make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/cmake -S/builddir/build/BUILD/nrn-7.8.1 -B/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/CMakeFiles /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu//CMakeFiles/progress.marks /usr/bin/make -f CMakeFiles/Makefile2 all make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nocmodl.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Nothing to be done for 'src/nrniv/CMakeFiles/nocmodl.dir/build'. make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Built target nocmodl /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/CMakeFiles/hh_update.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Update hh.mod for CoreNEURON compatibility sed "s/ RANGE minf/ GLOBAL minf/" /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.1 sed "s/ :TABLE minf/ TABLE minf/" /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.1 > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.2 /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.2 /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod /usr/bin/cmake -E remove /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/hh.mod.2 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 5%] Built target hh_update /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nrniv_lib.dir/DependInfo.cmake --color= Scanning dependencies of target nrniv_lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 6%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:116:34: warning: missing braces around initializer [-Wmissing-braces] 116 | static VoidFunc hoc_intfunc[] = { | ^ 117 | 0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:119:38: warning: missing braces around initializer [-Wmissing-braces] 119 | static Member_func _member_func[] = { | ^ 120 | "loc", _hoc_loc_pnt, | { } 121 | "has_loc", _hoc_has_loc, | { } 122 | "get_loc", _hoc_get_loc_pnt, | { } 123 | "check", _hoc_check, | { } 124 | "record", _hoc_record, | { } 125 | 0, 0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | "thresh", "mV", | { } 134 | "time", "ms", | { } 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:170:15: warning: unused variable 'prop_ion' [-Wunused-variable] 170 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_apcount_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:200:13: warning: unused variable '_vectorized' [-Wunused-variable] 200 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:18: warning: unused variable '_save' [-Wunused-variable] 293 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:7: warning: unused variable '_i' [-Wunused-variable] 293 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_cur__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:35: warning: variable '_v' set but not used [-Wunused-but-set-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:29: warning: unused variable '_rhs' [-Wunused-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:9: warning: variable '_p' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_jacob__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:20: warning: unused variable '_ppvar' [-Wunused-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:420:6: warning: unused variable '_i' [-Wunused-variable] 420 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:419:21: warning: unused variable '_p' [-Wunused-variable] 419 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:416:13: warning: 'terminal' defined but not used [-Wunused-function] 416 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:28:22: warning: '_nrn_current__APCount' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__APCount | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:335:15: note: in expansion of macro '_nrn_current' 335 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:226:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 226 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:224:12: warning: '_ninits' defined but not used [-Wunused-variable] 224 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:223:12: warning: 'error' defined but not used [-Wunused-variable] 223 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:221:14: warning: 'modelname' defined but not used [-Wunused-variable] 221 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:220:12: warning: '_reset' defined but not used [-Wunused-variable] 220 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:137:16: warning: 'delta_t' defined but not used [-Wunused-variable] 137 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:111:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 111 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:188:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 188 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 6%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:82:34: warning: missing braces around initializer [-Wmissing-braces] 82 | static VoidFunc hoc_intfunc[] = { | ^ 83 | "setdata_feature", _hoc_setdata, | { } 84 | "install_vector_fitness", _hoc_install_vector_fitness, | { } 85 | 0, 0 | { 86 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:44: warning: missing braces around initializer [-Wmissing-braces] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^ 90 | 0,0,0 | { { 91 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:42: warning: missing braces around initializer [-Wmissing-braces] 92 | static HocParmUnits _hoc_parm_units[] = { | ^ 93 | 0,0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:97:33: warning: missing braces around initializer [-Wmissing-braces] 97 | static DoubScal hoc_scdoub[] = { | ^ 98 | 0,0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:100:31: warning: missing braces around initializer [-Wmissing-braces] 100 | static DoubVec hoc_vdoub[] = { | ^ 101 | 0,0,0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:120:28: warning: unused variable '_ppvar' [-Wunused-variable] 120 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:119:15: warning: unused variable 'prop_ion' [-Wunused-variable] 119 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_feature_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:135:13: warning: unused variable '_vectorized' [-Wunused-variable] 135 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'width': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:152:13: warning: unused variable 'i' [-Wunused-variable] 152 | int i, nx, ny, i1, i2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'xfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:177:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 177 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'yfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:207:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 207 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:18: warning: unused variable '_save' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:7: warning: unused variable '_i' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:324:6: warning: unused variable '_i' [-Wunused-variable] 324 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:321:13: warning: 'terminal' defined but not used [-Wunused-function] 321 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:30:19: warning: '_nrn_state_' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state_ | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:297:13: note: in expansion of macro 'nrn_state' 297 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:28:22: warning: '_nrn_current_' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current_ | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:293:15: note: in expansion of macro '_nrn_current' 293 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:25:18: warning: '_nrn_init_' defined but not used [-Wunused-function] 25 | #define nrn_init _nrn_init_ | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:272:13: note: in expansion of macro 'nrn_init' 272 | static void nrn_init(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:146:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 146 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:143:12: warning: 'error' defined but not used [-Wunused-variable] 143 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:141:14: warning: 'modelname' defined but not used [-Wunused-variable] 141 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:140:12: warning: '_reset' defined but not used [-Wunused-variable] 140 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:118:13: warning: 'nrn_alloc' defined but not used [-Wunused-function] 118 | static void nrn_alloc(Prop* _prop) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:108:21: warning: '_mechanism' defined but not used [-Wunused-variable] 108 | static const char *_mechanism[] = { | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:103:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 103 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:22: warning: '_hoc_parm_units' defined but not used [-Wunused-variable] 92 | static HocParmUnits _hoc_parm_units[] = { | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:23: warning: '_hoc_parm_limits' defined but not used [-Wunused-variable] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:60:13: warning: 'hoc_nrnpointerindex' defined but not used [-Wunused-variable] 60 | static int hoc_nrnpointerindex = -1; | ^~~~~~~~~~~~~~~~~~~ [ 6%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:117:34: warning: missing braces around initializer [-Wmissing-braces] 117 | static VoidFunc hoc_intfunc[] = { | ^ 118 | 0,0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:120:38: warning: missing braces around initializer [-Wmissing-braces] 120 | static Member_func _member_func[] = { | ^ 121 | "loc", _hoc_loc_pnt, | { } 122 | "has_loc", _hoc_has_loc, | { } 123 | "get_loc", _hoc_get_loc_pnt, | { } 124 | "I", _hoc_I, | { } 125 | "M", _hoc_M, | { } 126 | "firetime", _hoc_firetime, | { } 127 | "newton1", _hoc_newton1, | { } 128 | 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:140:44: warning: missing braces around initializer [-Wmissing-braces] 140 | static HocParmLimits _hoc_parm_limits[] = { | ^ 141 | 0,0,0 | { { 142 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:143:42: warning: missing braces around initializer [-Wmissing-braces] 143 | static HocParmUnits _hoc_parm_units[] = { | ^ 144 | "taus", "ms", | { } 145 | "taum", "ms", | { } 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:179:15: warning: unused variable 'prop_ion' [-Wunused-variable] 179 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_intfire2_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:212:13: warning: unused variable '_vectorized' [-Wunused-variable] 212 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'I_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:268:15: warning: variable '_lf' set but not used [-Wunused-but-set-variable] 268 | double _lx , _lf ; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'newton1_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:371:38: warning: variable '_lxm' set but not used [-Wunused-but-set-variable] 371 | double _ldx , _lf , _ldf , _liter , _lxm ; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:18: warning: unused variable '_save' [-Wunused-variable] 415 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:7: warning: unused variable '_i' [-Wunused-variable] 415 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_init__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:19: warning: unused variable '_v' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:7: warning: unused variable '_nd' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_state__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:469:6: warning: unused variable '_i' [-Wunused-variable] 469 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:468:21: warning: unused variable '_p' [-Wunused-variable] 468 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:465:13: warning: 'terminal' defined but not used [-Wunused-function] 465 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:30:19: warning: '_nrn_state__IntFire2' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire2 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:448:13: note: in expansion of macro 'nrn_state' 448 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:28:22: warning: '_nrn_current__IntFire2' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire2 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:444:15: note: in expansion of macro '_nrn_current' 444 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:243:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 243 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:241:12: warning: '_ninits' defined but not used [-Wunused-variable] 241 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:240:12: warning: 'error' defined but not used [-Wunused-variable] 240 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:238:14: warning: 'modelname' defined but not used [-Wunused-variable] 238 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:237:12: warning: '_reset' defined but not used [-Wunused-variable] 237 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:112:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 112 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:197:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 197 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 6%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:118:34: warning: missing braces around initializer [-Wmissing-braces] 118 | static VoidFunc hoc_intfunc[] = { | ^ 119 | 0,0 | { 120 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:121:38: warning: missing braces around initializer [-Wmissing-braces] 121 | static Member_func _member_func[] = { | ^ 122 | "loc", _hoc_loc_pnt, | { } 123 | "has_loc", _hoc_has_loc, | { } 124 | "get_loc", _hoc_get_loc_pnt, | { } 125 | "icur", _hoc_icur, | { } 126 | "vstim", _hoc_vstim, | { } 127 | 0, 0 | { 128 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:131:44: warning: missing braces around initializer [-Wmissing-braces] 131 | static HocParmLimits _hoc_parm_limits[] = { | ^ 132 | "rs", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "rs", "megohm", | { } 137 | "on", "ms", | { } 138 | "off", "ms", | { } 139 | "vc", "mV", | { } 140 | "i", "nA", | { } 141 | 0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:145:33: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubScal hoc_scdoub[] = { | ^ 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:148:31: warning: missing braces around initializer [-Wmissing-braces] 148 | static DoubVec hoc_vdoub[] = { | ^ 149 | 0,0,0 | { 150 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_oclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:210:13: warning: unused variable '_vectorized' [-Wunused-variable] 210 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:18: warning: unused variable '_save' [-Wunused-variable] 292 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:7: warning: unused variable '_i' [-Wunused-variable] 292 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_nrn_jacob__OClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:20: warning: unused variable '_ppvar' [-Wunused-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:461:6: warning: unused variable '_i' [-Wunused-variable] 461 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:460:21: warning: unused variable '_p' [-Wunused-variable] 460 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:457:13: warning: 'terminal' defined but not used [-Wunused-function] 457 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:236:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 236 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:234:12: warning: '_ninits' defined but not used [-Wunused-variable] 234 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:233:12: warning: 'error' defined but not used [-Wunused-variable] 233 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:231:14: warning: 'modelname' defined but not used [-Wunused-variable] 231 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:230:12: warning: '_reset' defined but not used [-Wunused-variable] 230 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:151:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 151 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:143:16: warning: 'delta_t' defined but not used [-Wunused-variable] 143 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:113:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 113 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:198:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 198 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 6%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:106:34: warning: missing braces around initializer [-Wmissing-braces] 106 | static VoidFunc hoc_intfunc[] = { | ^ 107 | 0,0 | { 108 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:109:38: warning: missing braces around initializer [-Wmissing-braces] 109 | static Member_func _member_func[] = { | ^ 110 | "loc", _hoc_loc_pnt, | { } 111 | "has_loc", _hoc_has_loc, | { } 112 | "get_loc", _hoc_get_loc_pnt, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:117:44: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmLimits _hoc_parm_limits[] = { | ^ 118 | 0,0,0 | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:120:42: warning: missing braces around initializer [-Wmissing-braces] 120 | static HocParmUnits _hoc_parm_units[] = { | ^ 121 | 0,0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:124:33: warning: missing braces around initializer [-Wmissing-braces] 124 | static DoubScal hoc_scdoub[] = { | ^ 125 | 0,0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:127:31: warning: missing braces around initializer [-Wmissing-braces] 127 | static DoubVec hoc_vdoub[] = { | ^ 128 | 0,0,0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:149:15: warning: unused variable 'prop_ion' [-Wunused-variable] 149 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_ppmark_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:176:13: warning: unused variable '_vectorized' [-Wunused-variable] 176 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:18: warning: unused variable '_save' [-Wunused-variable] 205 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:7: warning: unused variable '_i' [-Wunused-variable] 205 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_nrn_state__PointProcessMark': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:268:6: warning: unused variable '_i' [-Wunused-variable] 268 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:267:21: warning: unused variable '_p' [-Wunused-variable] 267 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:264:13: warning: 'terminal' defined but not used [-Wunused-function] 264 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:30:19: warning: '_nrn_state__PointProcessMark' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:238:13: note: in expansion of macro 'nrn_state' 238 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:28:22: warning: '_nrn_current__PointProcessMark' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:234:15: note: in expansion of macro '_nrn_current' 234 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:202:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 202 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:200:12: warning: '_ninits' defined but not used [-Wunused-variable] 200 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:199:12: warning: 'error' defined but not used [-Wunused-variable] 199 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:197:14: warning: 'modelname' defined but not used [-Wunused-variable] 197 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:196:12: warning: '_reset' defined but not used [-Wunused-variable] 196 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:130:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 130 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:101:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 101 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:62:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 62 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:164:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 164 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 7%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | "alpha", _hoc_alpha, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:128:44: warning: missing braces around initializer [-Wmissing-braces] 128 | static HocParmLimits _hoc_parm_limits[] = { | ^ 129 | "gmax", 0, 1e+09, | { { }} 130 | "tau", 0.001, 1e+06, | { { }} 131 | 0,0,0 | { { 132 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:133:42: warning: missing braces around initializer [-Wmissing-braces] 133 | static HocParmUnits _hoc_parm_units[] = { | ^ 134 | "onset", "ms", | { } 135 | "tau", "ms", | { } 136 | "gmax", "uS", | { } 137 | "e", "mV", | { } 138 | "i", "nA", | { } 139 | 0,0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:142:33: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubScal hoc_scdoub[] = { | ^ 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:145:31: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubVec hoc_vdoub[] = { | ^ 146 | 0,0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:174:15: warning: unused variable 'prop_ion' [-Wunused-variable] 174 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:205:13: warning: unused variable '_vectorized' [-Wunused-variable] 205 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:18: warning: unused variable '_save' [-Wunused-variable] 257 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:7: warning: unused variable '_i' [-Wunused-variable] 257 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_jacob__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:20: warning: unused variable '_ppvar' [-Wunused-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:368:6: warning: unused variable '_i' [-Wunused-variable] 368 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:367:21: warning: unused variable '_p' [-Wunused-variable] 367 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:364:13: warning: 'terminal' defined but not used [-Wunused-function] 364 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:231:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 231 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:229:12: warning: '_ninits' defined but not used [-Wunused-variable] 229 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:228:12: warning: 'error' defined but not used [-Wunused-variable] 228 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:226:14: warning: 'modelname' defined but not used [-Wunused-variable] 226 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:225:12: warning: '_reset' defined but not used [-Wunused-variable] 225 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:148:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 148 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:193:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 193 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_cur__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:107:26: warning: '_nd' may be used uninitialized in this function [-Wmaybe-uninitialized] 107 | #define NODERHS(n) (*((n)->_rhs)) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:300:7: note: '_nd' was declared here 300 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~ [ 7%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:119:34: warning: missing braces around initializer [-Wmissing-braces] 119 | static VoidFunc hoc_intfunc[] = { | ^ 120 | 0,0 | { 121 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:122:38: warning: missing braces around initializer [-Wmissing-braces] 122 | static Member_func _member_func[] = { | ^ 123 | "loc", _hoc_loc_pnt, | { } 124 | "has_loc", _hoc_has_loc, | { } 125 | "get_loc", _hoc_get_loc_pnt, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:130:44: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmLimits _hoc_parm_limits[] = { | ^ 131 | "tau2", 1e-09, 1e+09, | { { }} 132 | "tau1", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "tau1", "ms", | { } 137 | "tau2", "ms", | { } 138 | "e", "mV", | { } 139 | "A", "uS", | { } 140 | "B", "uS", | { } 141 | "i", "nA", | { } 142 | "g", "uS", | { } 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:191:15: warning: unused variable 'prop_ion' [-Wunused-variable] 191 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:216:46: warning: missing braces around initializer [-Wmissing-braces] 216 | static HocStateTolerance _hoc_state_tol[] = { | ^ 217 | 0,0 | { 218 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_exp2syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:227:13: warning: unused variable '_vectorized' [-Wunused-variable] 227 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_net_receive__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:325:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 325 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:340:22: warning: unused variable '_v' [-Wunused-variable] 340 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:18: warning: unused variable '_save' [-Wunused-variable] 351 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:7: warning: unused variable '_i' [-Wunused-variable] 351 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_nrn_jacob__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:20: warning: unused variable '_ppvar' [-Wunused-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:499:6: warning: unused variable '_i' [-Wunused-variable] 499 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:495:13: warning: 'terminal' defined but not used [-Wunused-function] 495 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:258:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 258 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:256:12: warning: '_ninits' defined but not used [-Wunused-variable] 256 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:255:12: warning: 'error' defined but not used [-Wunused-variable] 255 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:253:14: warning: 'modelname' defined but not used [-Wunused-variable] 253 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:252:12: warning: '_reset' defined but not used [-Wunused-variable] 252 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:147:16: warning: 'delta_t' defined but not used [-Wunused-variable] 147 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:114:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 114 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:75:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 75 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:209:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 209 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 7%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:122:34: warning: missing braces around initializer [-Wmissing-braces] 122 | static VoidFunc hoc_intfunc[] = { | ^ 123 | "setdata_hh", _hoc_setdata, | { } 124 | "rates_hh", _hoc_rates, | { } 125 | "vtrap_hh", _hoc_vtrap, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:154:44: warning: missing braces around initializer [-Wmissing-braces] 154 | static HocParmLimits _hoc_parm_limits[] = { | ^ 155 | "gl_hh", 0, 1e+09, | { { }} 156 | "gkbar_hh", 0, 1e+09, | { { }} 157 | "gnabar_hh", 0, 1e+09, | { { }} 158 | "usetable_hh", 0, 1, | { { }} 159 | 0,0,0 | { { 160 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:161:42: warning: missing braces around initializer [-Wmissing-braces] 161 | static HocParmUnits _hoc_parm_units[] = { | ^ 162 | "mtau_hh", "ms", | { } 163 | "htau_hh", "ms", | { } 164 | "ntau_hh", "ms", | { } 165 | "gnabar_hh", "S/cm2", | { } 166 | "gkbar_hh", "S/cm2", | { } 167 | "gl_hh", "S/cm2", | { } 168 | "el_hh", "mV", | { } 169 | "gna_hh", "S/cm2", | { } 170 | "gk_hh", "S/cm2", | { } 171 | "il_hh", "mA/cm2", | { } 172 | 0,0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:179:33: warning: missing braces around initializer [-Wmissing-braces] 179 | static DoubScal hoc_scdoub[] = { | ^ 180 | "minf_hh", &minf_hh, | { } 181 | "hinf_hh", &hinf_hh, | { } 182 | "ninf_hh", &ninf_hh, | { } 183 | "mtau_hh", &mtau_hh, | { } 184 | "htau_hh", &htau_hh, | { } 185 | "ntau_hh", &ntau_hh, | { } 186 | "usetable_hh", &usetable_hh, | { } 187 | 0,0 | { 188 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:189:31: warning: missing braces around initializer [-Wmissing-braces] 189 | static DoubVec hoc_vdoub[] = { | ^ 190 | 0,0,0 | { 191 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:258:46: warning: missing braces around initializer [-Wmissing-braces] 258 | static HocStateTolerance _hoc_state_tol[] = { | ^ 259 | 0,0 | { 260 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_hh_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:271:13: warning: unused variable '_vectorized' [-Wunused-variable] 271 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_check_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:356:10: warning: unused variable '_xi' [-Wunused-variable] 356 | double _xi, _tmax; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:39: warning: unused variable '_ix' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:35: warning: unused variable '_j' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_n_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:385:104: warning: unused variable '_j' [-Wunused-variable] 385 | static void _n_rates(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _lv){ int _i, _j; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:488:22: warning: unused variable '_v' [-Wunused-variable] 488 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:501:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 501 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:516:22: warning: unused variable '_v' [-Wunused-variable] 516 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:18: warning: unused variable '_save' [-Wunused-variable] 553 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:7: warning: unused variable '_i' [-Wunused-variable] 553 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_nrn_jacob__hh': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:20: warning: unused variable '_ppvar' [-Wunused-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:714:6: warning: unused variable '_i' [-Wunused-variable] 714 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:710:13: warning: 'terminal' defined but not used [-Wunused-function] 710 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:318:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 318 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:316:12: warning: '_ninits' defined but not used [-Wunused-variable] 316 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:315:12: warning: 'error' defined but not used [-Wunused-variable] 315 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:313:14: warning: 'modelname' defined but not used [-Wunused-variable] 313 | static char *modelname = "hh.mod squid sodium, potassium, and leak channels"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:312:12: warning: '_reset' defined but not used [-Wunused-variable] 312 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:192:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 192 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:174:16: warning: 'delta_t' defined but not used [-Wunused-variable] 174 | static double delta_t = 0.01; | ^~~~~~~ [ 7%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:151:34: warning: missing braces around initializer [-Wmissing-braces] 151 | static VoidFunc hoc_intfunc[] = { | ^ 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:154:38: warning: missing braces around initializer [-Wmissing-braces] 154 | static Member_func _member_func[] = { | ^ 155 | "loc", _hoc_loc_pnt, | { } 156 | "has_loc", _hoc_has_loc, | { } 157 | "get_loc", _hoc_get_loc_pnt, | { } 158 | "E", _hoc_E, | { } 159 | "I", _hoc_I, | { } 160 | "M", _hoc_M, | { } 161 | "deriv", _hoc_deriv, | { } 162 | "firetimebound", _hoc_firetimebound, | { } 163 | "factors", _hoc_factors, | { } 164 | "fixprecondition", _hoc_fixprecondition, | { } 165 | "newstates", _hoc_newstates, | { } 166 | "search", _hoc_search, | { } 167 | "update", _hoc_update, | { } 168 | 0, 0 | { 169 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:190:44: warning: missing braces around initializer [-Wmissing-braces] 190 | static HocParmLimits _hoc_parm_limits[] = { | ^ 191 | "eps_IntFire4", 1e-09, 0.01, | { { }} 192 | "taueps_IntFire4", 1e-09, 1e+09, | { { }} 193 | "taum", 0, 1e+09, | { { }} 194 | "taui2", 0, 1e+09, | { { }} 195 | "taui1", 0, 1e+09, | { { }} 196 | "taue", 0, 1e+09, | { { }} 197 | 0,0,0 | { { 198 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:199:42: warning: missing braces around initializer [-Wmissing-braces] 199 | static HocParmUnits _hoc_parm_units[] = { | ^ 200 | "eps_IntFire4", "1e-9", | { } 201 | "taueps_IntFire4", "1e-9", | { } 202 | "taue", "ms", | { } 203 | "taui1", "ms", | { } 204 | "taui2", "ms", | { } 205 | "taum", "ms", | { } 206 | "ae", "1/ms", | { } 207 | "ai1", "1/ms", | { } 208 | "ai2", "1/ms", | { } 209 | 0,0 | { 210 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:212:33: warning: missing braces around initializer [-Wmissing-braces] 212 | static DoubScal hoc_scdoub[] = { | ^ 213 | "ib_IntFire4", &ib_IntFire4, | { } 214 | "eps_IntFire4", &eps_IntFire4, | { } 215 | "taueps_IntFire4", &taueps_IntFire4, | { } 216 | 0,0 | { 217 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:218:31: warning: missing braces around initializer [-Wmissing-braces] 218 | static DoubVec hoc_vdoub[] = { | ^ 219 | 0,0,0 | { 220 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:254:15: warning: unused variable 'prop_ion' [-Wunused-variable] 254 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_intfire4_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:288:13: warning: unused variable '_vectorized' [-Wunused-variable] 288 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:18: warning: unused variable '_save' [-Wunused-variable] 665 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:7: warning: unused variable '_i' [-Wunused-variable] 665 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_init__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:19: warning: unused variable '_v' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:7: warning: unused variable '_nd' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_state__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:723:6: warning: unused variable '_i' [-Wunused-variable] 723 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:722:21: warning: unused variable '_p' [-Wunused-variable] 722 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:719:13: warning: 'terminal' defined but not used [-Wunused-function] 719 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:30:19: warning: '_nrn_state__IntFire4' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire4 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:702:13: note: in expansion of macro 'nrn_state' 702 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:28:22: warning: '_nrn_current__IntFire4' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire4 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:698:15: note: in expansion of macro '_nrn_current' 698 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:319:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 319 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:317:12: warning: '_ninits' defined but not used [-Wunused-variable] 317 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:316:12: warning: 'error' defined but not used [-Wunused-variable] 316 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:314:14: warning: 'modelname' defined but not used [-Wunused-variable] 314 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:313:12: warning: '_reset' defined but not used [-Wunused-variable] 313 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:221:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 221 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:146:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 146 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:273:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 273 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'search_IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:596:8: warning: '_lsearch' may be used uninitialized in this function [-Wmaybe-uninitialized] 596 | return _lsearch; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:585:17: warning: '_lt2' may be used uninitialized in this function [-Wmaybe-uninitialized] 585 | while ( _lt2 - _lt1 > 1e-6 && flag == 0.0 ) { | ~~~~~^~~~~~ [ 7%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:96:34: warning: missing braces around initializer [-Wmissing-braces] 96 | static VoidFunc hoc_intfunc[] = { | ^ 97 | "setdata_pas", _hoc_setdata, | { } 98 | 0, 0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:102:44: warning: missing braces around initializer [-Wmissing-braces] 102 | static HocParmLimits _hoc_parm_limits[] = { | ^ 103 | "g_pas", 0, 1e+09, | { { }} 104 | 0,0,0 | { { 105 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:106:42: warning: missing braces around initializer [-Wmissing-braces] 106 | static HocParmUnits _hoc_parm_units[] = { | ^ 107 | "g_pas", "S/cm2", | { } 108 | "e_pas", "mV", | { } 109 | "i_pas", "mA/cm2", | { } 110 | 0,0 | { 111 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:113:33: warning: missing braces around initializer [-Wmissing-braces] 113 | static DoubScal hoc_scdoub[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:116:31: warning: missing braces around initializer [-Wmissing-braces] 116 | static DoubVec hoc_vdoub[] = { | ^ 117 | 0,0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:141:28: warning: unused variable '_ppvar' [-Wunused-variable] 141 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:140:15: warning: unused variable 'prop_ion' [-Wunused-variable] 140 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_passive_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:158:13: warning: unused variable '_vectorized' [-Wunused-variable] 158 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:18: warning: unused variable '_save' [-Wunused-variable] 182 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:7: warning: unused variable '_i' [-Wunused-variable] 182 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_nrn_jacob__pas': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:20: warning: unused variable '_ppvar' [-Wunused-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:287:6: warning: unused variable '_i' [-Wunused-variable] 287 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:286:21: warning: unused variable '_p' [-Wunused-variable] 286 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:283:13: warning: 'terminal' defined but not used [-Wunused-function] 283 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:179:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 179 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:177:12: warning: '_ninits' defined but not used [-Wunused-variable] 177 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:176:12: warning: 'error' defined but not used [-Wunused-variable] 176 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:174:14: warning: 'modelname' defined but not used [-Wunused-variable] 174 | static char *modelname = "passive membrane channel"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:173:12: warning: '_reset' defined but not used [-Wunused-variable] 173 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:119:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 119 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:65:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 65 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ [ 8%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | 0, 0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:122:44: warning: missing braces around initializer [-Wmissing-braces] 122 | static HocParmLimits _hoc_parm_limits[] = { | ^ 123 | "dur", 0, 1e+09, | { { }} 124 | 0,0,0 | { { 125 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:126:42: warning: missing braces around initializer [-Wmissing-braces] 126 | static HocParmUnits _hoc_parm_units[] = { | ^ 127 | "del", "ms", | { } 128 | "dur", "ms", | { } 129 | "amp", "nA", | { } 130 | "i", "nA", | { } 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:134:33: warning: missing braces around initializer [-Wmissing-braces] 134 | static DoubScal hoc_scdoub[] = { | ^ 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:137:31: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubVec hoc_vdoub[] = { | ^ 138 | 0,0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:165:15: warning: unused variable 'prop_ion' [-Wunused-variable] 165 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_stim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:195:13: warning: unused variable '_vectorized' [-Wunused-variable] 195 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:18: warning: unused variable '_save' [-Wunused-variable] 224 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:7: warning: unused variable '_i' [-Wunused-variable] 224 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_nrn_jacob__IClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:20: warning: unused variable '_ppvar' [-Wunused-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:369:6: warning: unused variable '_i' [-Wunused-variable] 369 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:368:21: warning: unused variable '_p' [-Wunused-variable] 368 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:365:13: warning: 'terminal' defined but not used [-Wunused-function] 365 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:221:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 221 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:219:12: warning: '_ninits' defined but not used [-Wunused-variable] 219 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:218:12: warning: 'error' defined but not used [-Wunused-variable] 218 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:216:14: warning: 'modelname' defined but not used [-Wunused-variable] 216 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:215:12: warning: '_reset' defined but not used [-Wunused-variable] 215 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:140:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 140 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:106:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 106 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:67:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 67 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:183:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 183 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 8%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "icur", _hoc_icur, | { } 136 | "update", _hoc_update, | { } 137 | "vstim", _hoc_vstim, | { } 138 | 0, 0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:144:44: warning: missing braces around initializer [-Wmissing-braces] 144 | static HocParmLimits _hoc_parm_limits[] = { | ^ 145 | "dur", 0, 1e+09, | { { }} 146 | "fac", 1, 10, | { { }} 147 | "gain", 0, 1e+09, | { { }} 148 | "rstim", 1e-09, 1e+09, | { { }} 149 | "tau2", 0, 1e+09, | { { }} 150 | "tau1", 0, 1e+09, | { { }} 151 | 0,0,0 | { { 152 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:153:42: warning: missing braces around initializer [-Wmissing-braces] 153 | static HocParmUnits _hoc_parm_units[] = { | ^ 154 | "dur", "ms", | { } 155 | "amp", "mV", | { } 156 | "rstim", "megohm", | { } 157 | "tau1", "ms", | { } 158 | "tau2", "ms", | { } 159 | "e0", "mV", | { } 160 | "vo0", "mV", | { } 161 | "vi0", "mV", | { } 162 | "fac", "1.0", | { } 163 | "e", "mV", | { } 164 | "vo", "mV", | { } 165 | "vi", "mV", | { } 166 | "i", "nA", | { } 167 | 0,0 | { 168 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:172:33: warning: missing braces around initializer [-Wmissing-braces] 172 | static DoubScal hoc_scdoub[] = { | ^ 173 | 0,0 | { 174 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:175:31: warning: missing braces around initializer [-Wmissing-braces] 175 | static DoubVec hoc_vdoub[] = { | ^ 176 | 0,0,0 | { 177 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:213:15: warning: unused variable 'prop_ion' [-Wunused-variable] 213 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_vclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:248:13: warning: unused variable '_vectorized' [-Wunused-variable] 248 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'icur_VClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:306:9: warning: unused variable '_lvout' [-Wunused-variable] 306 | double _lvout ; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:382:7: warning: unused variable '_i' [-Wunused-variable] 382 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:561:6: warning: unused variable '_i' [-Wunused-variable] 561 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:558:13: warning: 'terminal' defined but not used [-Wunused-function] 558 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:274:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 274 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:269:14: warning: 'modelname' defined but not used [-Wunused-variable] 269 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:268:12: warning: '_reset' defined but not used [-Wunused-variable] 268 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:169:16: warning: 'delta_t' defined but not used [-Wunused-variable] 169 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:236:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 236 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 8%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:125:44: warning: missing braces around initializer [-Wmissing-braces] 125 | static HocParmLimits _hoc_parm_limits[] = { | ^ 126 | "tau", 1e-09, 1e+09, | { { }} 127 | 0,0,0 | { { 128 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:129:42: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmUnits _hoc_parm_units[] = { | ^ 130 | "tau", "ms", | { } 131 | "e", "mV", | { } 132 | "g", "uS", | { } 133 | "i", "nA", | { } 134 | 0,0 | { 135 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:202:46: warning: missing braces around initializer [-Wmissing-braces] 202 | static HocStateTolerance _hoc_state_tol[] = { | ^ 203 | 0,0 | { 204 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_expsyn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:213:13: warning: unused variable '_vectorized' [-Wunused-variable] 213 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_net_receive__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:288:22: warning: unused variable '_v' [-Wunused-variable] 288 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:299:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 299 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:18: warning: unused variable '_save' [-Wunused-variable] 325 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:7: warning: unused variable '_i' [-Wunused-variable] 325 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_nrn_jacob__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:20: warning: unused variable '_ppvar' [-Wunused-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:460:6: warning: unused variable '_i' [-Wunused-variable] 460 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:456:13: warning: 'terminal' defined but not used [-Wunused-function] 456 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:244:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 244 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:242:12: warning: '_ninits' defined but not used [-Wunused-variable] 242 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:241:12: warning: 'error' defined but not used [-Wunused-variable] 241 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:239:14: warning: 'modelname' defined but not used [-Wunused-variable] 239 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:238:12: warning: '_reset' defined but not used [-Wunused-variable] 238 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:136:16: warning: 'delta_t' defined but not used [-Wunused-variable] 136 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:70:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 70 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:195:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 195 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 8%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:113:34: warning: missing braces around initializer [-Wmissing-braces] 113 | static VoidFunc hoc_intfunc[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:116:38: warning: missing braces around initializer [-Wmissing-braces] 116 | static Member_func _member_func[] = { | ^ 117 | "loc", _hoc_loc_pnt, | { } 118 | "has_loc", _hoc_has_loc, | { } 119 | "get_loc", _hoc_get_loc_pnt, | { } 120 | "M", _hoc_M, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:127:44: warning: missing braces around initializer [-Wmissing-braces] 127 | static HocParmLimits _hoc_parm_limits[] = { | ^ 128 | 0,0,0 | { { 129 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:130:42: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmUnits _hoc_parm_units[] = { | ^ 131 | "tau", "ms", | { } 132 | "refrac", "ms", | { } 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:136:33: warning: missing braces around initializer [-Wmissing-braces] 136 | static DoubScal hoc_scdoub[] = { | ^ 137 | 0,0 | { 138 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:139:31: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubVec hoc_vdoub[] = { | ^ 140 | 0,0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:164:15: warning: unused variable 'prop_ion' [-Wunused-variable] 164 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_intfire1_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:196:13: warning: unused variable '_vectorized' [-Wunused-variable] 196 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_net_receive__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:258:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 258 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:18: warning: unused variable '_save' [-Wunused-variable] 282 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:7: warning: unused variable '_i' [-Wunused-variable] 282 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_init__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:19: warning: unused variable '_v' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:7: warning: unused variable '_nd' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_state__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:332:6: warning: unused variable '_i' [-Wunused-variable] 332 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:331:21: warning: unused variable '_p' [-Wunused-variable] 331 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:328:13: warning: 'terminal' defined but not used [-Wunused-function] 328 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:30:19: warning: '_nrn_state__IntFire1' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire1 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:311:13: note: in expansion of macro 'nrn_state' 311 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:28:22: warning: '_nrn_current__IntFire1' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire1 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:307:15: note: in expansion of macro '_nrn_current' 307 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:227:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 227 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:225:12: warning: '_ninits' defined but not used [-Wunused-variable] 225 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:224:12: warning: 'error' defined but not used [-Wunused-variable] 224 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:222:14: warning: 'modelname' defined but not used [-Wunused-variable] 222 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:221:12: warning: '_reset' defined but not used [-Wunused-variable] 221 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:142:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 142 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:108:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 108 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:181:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 181 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'M_IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:243:8: warning: '_lM' may be used uninitialized in this function [-Wmaybe-uninitialized] 243 | return _lM; | ^~~ [ 8%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "erand", _hoc_erand, | { } 136 | "init_sequence", _hoc_init_sequence, | { } 137 | "invl", _hoc_invl, | { } 138 | "next_invl", _hoc_next_invl, | { } 139 | "noiseFromRandom123", _hoc_noiseFromRandom123, | { } 140 | "noiseFromRandom", _hoc_noiseFromRandom, | { } 141 | "seed", _hoc_seed, | { } 142 | 0, 0 | { 143 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:150:44: warning: missing braces around initializer [-Wmissing-braces] 150 | static HocParmLimits _hoc_parm_limits[] = { | ^ 151 | "interval", 1e-09, 1e+09, | { { }} 152 | "noise", 0, 1, | { { }} 153 | "number", 0, 1e+09, | { { }} 154 | 0,0,0 | { { 155 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:156:42: warning: missing braces around initializer [-Wmissing-braces] 156 | static HocParmUnits _hoc_parm_units[] = { | ^ 157 | "interval", "ms", | { } 158 | "start", "ms", | { } 159 | 0,0 | { 160 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:162:33: warning: missing braces around initializer [-Wmissing-braces] 162 | static DoubScal hoc_scdoub[] = { | ^ 163 | 0,0 | { 164 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:165:31: warning: missing braces around initializer [-Wmissing-braces] 165 | static DoubVec hoc_vdoub[] = { | ^ 166 | 0,0,0 | { 167 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_netstim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:228:13: warning: unused variable '_vectorized' [-Wunused-variable] 228 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:18: warning: unused variable '_save' [-Wunused-variable] 586 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:7: warning: unused variable '_i' [-Wunused-variable] 586 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_init__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:19: warning: unused variable '_v' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:7: warning: unused variable '_nd' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_state__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:655:6: warning: unused variable '_i' [-Wunused-variable] 655 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:654:21: warning: unused variable '_p' [-Wunused-variable] 654 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:651:13: warning: 'terminal' defined but not used [-Wunused-function] 651 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:30:19: warning: '_nrn_state__NetStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__NetStim | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:634:13: note: in expansion of macro 'nrn_state' 634 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:28:22: warning: '_nrn_current__NetStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__NetStim | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:630:15: note: in expansion of macro '_nrn_current' 630 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:518:13: warning: 'bbcore_read' defined but not used [-Wunused-function] 518 | static void bbcore_read(double* x, int* d, int* xx, int* offset, _threadargsproto_) { | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:261:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 261 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:259:12: warning: '_ninits' defined but not used [-Wunused-variable] 259 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:258:12: warning: 'error' defined but not used [-Wunused-variable] 258 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:256:14: warning: 'modelname' defined but not used [-Wunused-variable] 256 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:255:12: warning: '_reset' defined but not used [-Wunused-variable] 255 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:168:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 168 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:123:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 123 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:211:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 211 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 9%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | "initps", _hoc_initps, | { } 119 | "play", _hoc_play, | { } 120 | "sendgroup", _hoc_sendgroup, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:137:33: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubScal hoc_scdoub[] = { | ^ 138 | 0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:140:31: warning: missing braces around initializer [-Wmissing-braces] 140 | static DoubVec hoc_vdoub[] = { | ^ 141 | 0,0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:166:15: warning: unused variable 'prop_ion' [-Wunused-variable] 166 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_pattern_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:198:13: warning: unused variable '_vectorized' [-Wunused-variable] 198 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:18: warning: unused variable '_save' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:7: warning: unused variable '_i' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_init__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:19: warning: unused variable '_v' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:7: warning: unused variable '_nd' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_state__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:426:6: warning: unused variable '_i' [-Wunused-variable] 426 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:423:13: warning: 'terminal' defined but not used [-Wunused-function] 423 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:30:19: warning: '_nrn_state__PatternStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:408:13: note: in expansion of macro 'nrn_state' 408 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:28:22: warning: '_nrn_current__PatternStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:404:15: note: in expansion of macro '_nrn_current' 404 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:230:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 230 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:227:12: warning: 'error' defined but not used [-Wunused-variable] 227 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:225:14: warning: 'modelname' defined but not used [-Wunused-variable] 225 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:224:12: warning: '_reset' defined but not used [-Wunused-variable] 224 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:143:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 143 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:182:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 182 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 9%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/gcc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:123:34: warning: missing braces around initializer [-Wmissing-braces] 123 | static VoidFunc hoc_intfunc[] = { | ^ 124 | 0,0 | { 125 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:126:38: warning: missing braces around initializer [-Wmissing-braces] 126 | static Member_func _member_func[] = { | ^ 127 | "loc", _hoc_loc_pnt, | { } 128 | "has_loc", _hoc_has_loc, | { } 129 | "get_loc", _hoc_get_loc_pnt, | { } 130 | "icur", _hoc_icur, | { } 131 | "vstim", _hoc_vstim, | { } 132 | 0, 0 | { 133 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:136:44: warning: missing braces around initializer [-Wmissing-braces] 136 | static HocParmLimits _hoc_parm_limits[] = { | ^ 137 | "dur3", 0, 1e+09, | { { }} 138 | "dur2", 0, 1e+09, | { { }} 139 | "rs", 1e-09, 1e+09, | { { }} 140 | 0,0,0 | { { 141 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:142:42: warning: missing braces around initializer [-Wmissing-braces] 142 | static HocParmUnits _hoc_parm_units[] = { | ^ 143 | "rs", "megohm", | { } 144 | "dur1", "ms", | { } 145 | "amp1", "mV", | { } 146 | "dur2", "ms", | { } 147 | "amp2", "mV", | { } 148 | "dur3", "ms", | { } 149 | "amp3", "mV", | { } 150 | "i", "nA", | { } 151 | "vc", "mV", | { } 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:156:33: warning: missing braces around initializer [-Wmissing-braces] 156 | static DoubScal hoc_scdoub[] = { | ^ 157 | 0,0 | { 158 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:159:31: warning: missing braces around initializer [-Wmissing-braces] 159 | static DoubVec hoc_vdoub[] = { | ^ 160 | 0,0,0 | { 161 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_svclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:226:13: warning: unused variable '_vectorized' [-Wunused-variable] 226 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:18: warning: unused variable '_save' [-Wunused-variable] 317 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:7: warning: unused variable '_i' [-Wunused-variable] 317 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_nrn_jacob__SEClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:20: warning: unused variable '_ppvar' [-Wunused-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:488:6: warning: unused variable '_i' [-Wunused-variable] 488 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:487:21: warning: unused variable '_p' [-Wunused-variable] 487 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:484:13: warning: 'terminal' defined but not used [-Wunused-function] 484 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:252:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 252 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:250:12: warning: '_ninits' defined but not used [-Wunused-variable] 250 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:249:12: warning: 'error' defined but not used [-Wunused-variable] 249 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:247:14: warning: 'modelname' defined but not used [-Wunused-variable] 247 | static char *modelname = "svclmp.mod"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:246:12: warning: '_reset' defined but not used [-Wunused-variable] 246 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:162:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 162 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:154:16: warning: 'delta_t' defined but not used [-Wunused-variable] 154 | static double delta_t = 1; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:118:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 118 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:214:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 214 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 9%] Linking CXX shared library ../../lib/libnrniv.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv_lib.dir/link.txt --verbose=1 /usr/bin/g++ -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,libnrniv.so.0.0.0 -o ../../lib/libnrniv.so.0.0.0 CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o CMakeFiles/nrniv_lib.dir/bbs.cpp.o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o CMakeFiles/nrniv_lib.dir/classreg.cpp.o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o CMakeFiles/nrniv_lib.dir/datapath.cpp.o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o CMakeFiles/nrniv_lib.dir/kschan.cpp.o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o CMakeFiles/nrniv_lib.dir/linmod.cpp.o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o CMakeFiles/nrniv_lib.dir/netpar.cpp.o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o CMakeFiles/nrniv_lib.dir/occvode.cpp.o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o CMakeFiles/nrniv_lib.dir/partrans.cpp.o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o CMakeFiles/nrniv_lib.dir/savstate.cpp.o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o CMakeFiles/nrniv_lib.dir/shape.cpp.o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o CMakeFiles/nrniv_lib.dir/singlech.cpp.o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o CMakeFiles/nrniv_lib.dir/symdir.cpp.o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: warning: type 'struct OcSparseMatrix' violates the C++ One Definition Rule [-Wodr] 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: a different type is defined in another translation unit 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: the first difference of corresponding definitions is field 'm_' 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: a field of same name but different type is defined in another translation unit 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: type 'struct SPMAT' should match type 'void' 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:185:9: warning: type 'union ' violates the C++ One Definition Rule [-Wodr] 185 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:38:11: note: a different type is defined in another translation unit 38 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:188:12: note: the first difference of corresponding definitions is field 'pstr_' 188 | char** pstr_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:41:15: note: a field with different name is defined in another translation unit 41 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: warning: type 'struct PyHocObject' violates the C++ One Definition Rule [-Wodr] 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:57:3: note: a different type is defined in another translation unit 57 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:184:25: note: the first difference of corresponding definitions is field 'ho_' 184 | PyObject_HEAD Object* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:37:11: note: a field of same name but different type is defined in another translation unit 37 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: note: type 'struct Object' should match type 'void' 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:13: warning: type of 's_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: return value type mismatch 174 | int s_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: 's_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:23: warning: type of 'do_fio' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: return value type mismatch 184 | int do_fio() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: 'do_fio' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:33: warning: type of 'e_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: return value type mismatch 189 | int e_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: 'e_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:230:14: warning: type of 'oc_restore_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 230 | void oc_restore_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: type mismatch in parameter 5 445 | void oc_restore_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: 'oc_restore_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:229:14: warning: type of 'oc_save_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 229 | void oc_save_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: type mismatch in parameter 5 428 | void oc_save_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: 'oc_save_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:285:13: warning: type of 'nrn_threads_create' does not match original declaration [-Wlto-type-mismatch] 285 | extern void nrn_threads_create(int); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type mismatch in parameter 2 488 | void nrn_threads_create(int n, int parallel) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type 'int' should match type 'void' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: 'nrn_threads_create' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1864:6: warning: type of 'nrnthread_get_trajectory_requests' does not match original declaration [-Wlto-type-mismatch] 1864 | void nrnthread_get_trajectory_requests(int tid, int& bsize, int& ntrajec, void**& vpr, int*& types, int*& indices, double**& pvars, double**& varrays); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: type mismatch in parameter 9 5561 | void nrnthread_get_trajectory_requests(int tid, int& bsize, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: 'nrnthread_get_trajectory_requests' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:33:20: warning: 'nrnmpi_multisplit' violates the C++ One Definition Rule [-Wodr] 33 | extern int nrnmpi_multisplit(Section*, double x, int sid, int backbonestyle); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: return value type mismatch 310 | void nrnmpi_multisplit(Section* sec, double x, int sid, int backbone_style) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: type 'void' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: 'nrnmpi_multisplit' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: 'at_time' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrncvode.h:20:13: warning: type of 'nrn_random_play' does not match original declaration [-Wlto-type-mismatch] 20 | extern void nrn_random_play(NrnThread*); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: type mismatch in parameter 1 583 | void nrn_random_play() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: 'nrn_random_play' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp:51:41: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 51 | bucketCount = new int[howManyBuckets]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp: In member function 'rate': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp:74:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 74 | int* s = new int[size]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:110:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 110 | implementPool(TQItemPool, TQItem) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:302:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 302 | implementStructPool(SectionPool, Section) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:152:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 152 | DoubleArrayPool** p1 = new DoubleArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:153:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 153 | DatumArrayPool** p2 = new DatumArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'in_place_data_realloc', inlined from 'nrn_cache_prop_realloc' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:575:24: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:515:55: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 515 | Memb_list** mlmap = new Memb_list*[n_memb_func]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_cache_prop_realloc': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: '__builtin_strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'nrnthread_dat2_3.part.0': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1385:24: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1385 | delays = new double[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'gapsolve': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] 619 | cmplx_spSolve(m_, rb-1, rx1-1, jb-1, jx1-1); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 2 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 3 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 4 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 5 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:135:1: note: in a call to function 'cmplx_spSolve' 135 | spSolve( eMatrix, RHS, Solution IMAG_VECTORS ) | ^ In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '__fgets_alias' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^ /usr/include/bits/stdio2.h:251:14: note: in a call to function '__fgets_alias' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^ In function 'mk_cellgroups', inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:648:40: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 648 | cgs[i].output_ps = new PreSyn*[npre]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'mk_cgs_netcon_info', inlined from 'mk_cellgroups' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:722:21, inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:558:44: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 558 | cgs[i].netcons = new NetCon*[nccnt[i]+1]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2434:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2434 | smap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2435:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2435 | rmap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'v_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3144:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 3144 | sid0i = new int[nback]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'exchange_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1226:57: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1226 | m.nd_rt_index_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1227:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1227 | m.nd_rt_index_th_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:591:42: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 591 | int* nn = new int[nrnmpi_numprocs]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:591:42: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 591 | int* nn = new int[nrnmpi_numprocs]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:449:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 449 | implementPool(SelfEventPool, SelfEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp:12:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 12 | implementPool(HocEventPool, HocEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'init_global': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1773:71: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1773 | ml->nodelist = new Node*[ml->nodecount]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'settype': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1456:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1456 | Symbol** ligands = new Symbol*[nligand_+1]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'setstructure': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1895:47: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1895 | gc_ = new KSGateComplex[ngate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1899:50: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1899 | trans_ = new KSTransition[ntrans_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1903:45: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1903 | state_ = new KSState[nstate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E cmake_symlink_library ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 93%] Built target nrniv_lib /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/nrniv.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 93%] Linking CXX executable ../../bin/nrniv cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv.dir/link.txt --verbose=1 /usr/bin/g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -o ../../bin/nrniv ../../lib/libnrniv.so.0.0.0 -pthread -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 94%] Built target nrniv /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrniv/CMakeFiles/modlunit.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Nothing to be done for 'src/nrniv/CMakeFiles/modlunit.dir/build'. make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 98%] Built target modlunit /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/hoc_module.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/constants.py /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/constants.py cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/demo /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/demo make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 98%] Built target hoc_module /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython/CMakeFiles/rxdmath.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Nothing to be done for 'src/nrnpython/CMakeFiles/rxdmath.dir/build'. make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 99%] Built target rxdmath /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Nothing to be done for 'share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build'. make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 99%] Built target rxd_cython_generated /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/runpy.sh /usr/bin/python3.9 runpy /usr/bin/python3.9 + echo runpy /usr/bin/python3.9 + pyexe=/usr/bin/python3.9 + mingw= + shift + test x = x1 + /usr/bin/python3.9 setup.py build_ext --build-lib=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib/python running build_ext make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 99%] Built target rx3dextensions_0 /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[2]: Nothing to be done for 'share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build'. make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 99%] Built target rx3d /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/rxdmod.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/test/rxd && /usr/bin/cmake -E env NEURONHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn NRNHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu LD_LIBRARY_PATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib: PYTHONPATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib/python:/builddir/build/BUILD/nrn-7.8.1/test/rxd: /bin/bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nrnivmodl ./ecs which: no xcrun in (/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin) /builddir/build/BUILD/nrn-7.8.1/test/rxd ls: cannot access './ecs/*.inc': No such file or directory ./ecs/pump.mod pump.mod make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> Compiling mod_func.c cc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/include -fPIC -c mod_func.c -o mod_func.o -> NMODL pump.mod MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/nrnunits.lib \ /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/bin/nocmodl pump.mod Translating pump.mod into pump.c Thread Safe -> Compiling x86_64/pump.c (cd .. ; cc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/include -fPIC -c x86_64/pump.c -o x86_64/pump.o) x86_64/pump.c:101:34: warning: missing braces around initializer [-Wmissing-braces] 101 | static VoidFunc hoc_intfunc[] = { | ^ 102 | "setdata_pump", _hoc_setdata, | { } 103 | 0, 0 | { 104 | }; | } x86_64/pump.c:114:44: warning: missing braces around initializer [-Wmissing-braces] 114 | static HocParmLimits _hoc_parm_limits[] = { | ^ 115 | 0,0,0 | { { 116 | }; | }} x86_64/pump.c:117:42: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmUnits _hoc_parm_units[] = { | ^ 118 | "imax_pump", "mA/cm2", | { } 119 | "Kd_pump", "mM", | { } 120 | "ix_pump", "mA/cm2", | { } 121 | "i_pump", "mA/cm2", | { } 122 | 0,0 | { 123 | }; | } x86_64/pump.c:125:33: warning: missing braces around initializer [-Wmissing-braces] 125 | static DoubScal hoc_scdoub[] = { | ^ 126 | "imax_pump", &imax_pump, | { } 127 | "Kd_pump", &Kd_pump, | { } 128 | 0,0 | { 129 | }; | } x86_64/pump.c:130:31: warning: missing braces around initializer [-Wmissing-braces] 130 | static DoubVec hoc_vdoub[] = { | ^ 131 | 0,0,0 | { 132 | }; | } x86_64/pump.c: In function '_pump_reg': x86_64/pump.c:182:13: warning: unused variable '_vectorized' [-Wunused-variable] 182 | int _vectorized = 1; | ^~~~~~~~~~~ x86_64/pump.c: In function 'initmodel': x86_64/pump.c:240:18: warning: unused variable '_save' [-Wunused-variable] 240 | int _i; double _save;{ | ^~~~~ x86_64/pump.c:240:7: warning: unused variable '_i' [-Wunused-variable] 240 | int _i; double _save;{ | ^~ x86_64/pump.c: In function '_nrn_jacob__pump': x86_64/pump.c:328:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ x86_64/pump.c:328:20: warning: unused variable '_ppvar' [-Wunused-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ x86_64/pump.c: In function '_initlists': x86_64/pump.c:359:6: warning: unused variable '_i' [-Wunused-variable] 359 | int _i; static int _first = 1; | ^~ x86_64/pump.c:358:21: warning: unused variable '_p' [-Wunused-variable] 358 | double _x; double* _p = &_x; | ^~ At top level: x86_64/pump.c:355:13: warning: 'terminal' defined but not used [-Wunused-function] 355 | static void terminal(){} | ^~~~~~~~ x86_64/pump.c:215:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 215 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ x86_64/pump.c:213:12: warning: '_ninits' defined but not used [-Wunused-variable] 213 | static int _ninits = 0; | ^~~~~~~ x86_64/pump.c:212:12: warning: 'error' defined but not used [-Wunused-variable] 212 | static int error; | ^~~~~ x86_64/pump.c:210:14: warning: 'modelname' defined but not used [-Wunused-variable] 210 | static char *modelname = ""; | ^~~~~~~~~ x86_64/pump.c:209:12: warning: '_reset' defined but not used [-Wunused-variable] 209 | static int _reset; | ^~~~~~ x86_64/pump.c:133:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 133 | static double _sav_indep; | ^~~~~~~~~~ => LINKING library x86_64/libnrnmech.so Mod files: pump.mod (cd .. ; g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -shared -fPIC -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -I /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/include -o x86_64/libnrnmech.so -Wl,-soname,libnrnmech.so \ x86_64/mod_func.o x86_64/pump.o -L/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib -lnrniv -Wl,-rpath,/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib -lreadline -lcurses -lform -lpython3 -lX11 -lXext) (cd .. ; rm -f x86_64/.libs/libnrnmech.so ; mkdir -p x86_64/.libs ; ln -s ../../x86_64/libnrnmech.so x86_64/.libs/libnrnmech.so) make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' Successfully created x86_64/special make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [ 99%] Built target rxdmod /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test/CMakeFiles/testneuron.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [100%] Linking CXX executable ../bin/test/testneuron cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/testneuron.dir/link.txt --verbose=1 /usr/bin/g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -o ../bin/test/testneuron ../lib/libnrniv.so.0.0.0 -pthread -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/test && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' [100%] Built target testneuron make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/CMakeFiles 0 /usr/bin/make -f CMakeFiles/Makefile2 preinstall make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' make[1]: Nothing to be done for 'preinstall'. make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' Install the project... /usr/bin/cmake -P cmake_install.cmake -- Install configuration: "RelWithDebInfo" -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/shape.cm2 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/shape.cm1 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/prologue.id -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/nrnunits.lib.in -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/nrn.defaults.in -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hocload.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/wingroup.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/vplay.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/vecwrap.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/varmeth1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/thresh.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/subiter.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/stdrun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/stdlib.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/stdgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/singlech.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/single1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/single.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/showmech.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/shapebox.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/runfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/rcs.iv -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/rcs.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/prcellstate.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/pointman.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/pointgrp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/pointbsr.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/pcchdir.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/parcom.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/nrngui1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/nrngui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/noload.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netparmpi.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild/syntypes.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild/spkplot.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild/netready.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild/netgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild/netdata.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild/grstrlst.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild/edgegui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild/artcel.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/netbild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/treeview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/secanal.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/realcell.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/rcclasses.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/ppanal.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/parmvals.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/parmsets.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/ncview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/mviewxml.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/mviewgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/mview1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/distinctparm.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/distinct.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/artview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/allpp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/allcell.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/protorun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/optwrap.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/mulfit1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/fitparm.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/eparmlst.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/eonerun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/eoneprim.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/eonefunc.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/e_y.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/e_xy.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/e_norm.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/e_actpot.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/clampfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mulfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/movierun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/modlunit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mknrndll.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/mkcurve.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/macload.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/logax.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/loadbal.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/lincir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/lincir/linmech.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/lincir/lingraph.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/lincir/lincir1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/lincir/elmbase.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/lincir/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/lincir.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/kinbuild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/inserter.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/impratio.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/import3d -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/import3d/read_swc.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/import3d/read_nts.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/import3d/read_nlcda3.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/import3d/read_nlcda.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/import3d/read_morphml.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/import3d/import3d_sec.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/import3d/import3d_gui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/import3d/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/import3d.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/impedanx.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/impedanc.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/grapher.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/gatherv.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/funfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/family.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/electrod.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/corenrn.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/table.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/sigmoid.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/properties.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/linoid.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/kstrans.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/kstgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/ksstate.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/ksgate.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/kschanbg.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/gategui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/exp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/const.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/chanbild1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/chanbild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild/psubset.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild/inhomofn.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild/celtopol.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild/celset.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild/celmemb.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild/celmang.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild/celgeom.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild/celbild1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/celbild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/binfo.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/attshape.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/atoltool.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/hoc/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/helpdict -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/cleanup -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/auditscripts -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/auditscripts/saveaudit -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/auditscripts/retrieve.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/auditscripts/notes -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/auditscripts/hocaudit.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/auditscripts/gettarname -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/auditscripts/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/testca.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/sync -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/sync/synchronize.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/sync/start.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/sync/spkplot.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/sync/init.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/sync/demosync.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/sync/cell.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/sync/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/singhhchan.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/singhh.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/singhh.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/release.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/nachan.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/nacaex.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/mcna.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/khhchan.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/invlfire.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/capump.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/camchan.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/cachan1.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/cabpump.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/release.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/reconst.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/pyramid.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/pyramid.nrn -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/nomodel.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/hh.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/hh.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/dynclamp.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/dynclamp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/dynchan.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/dend3 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/dend3/syn3.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/dend3/dend3.nrn -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/dend3/control.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/dend3/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/dend3.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/demo.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/demo.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/d3init.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/cycle.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/demo/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/nrnunits.lib -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/nrn.defaults -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/lib/cleanup -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnpthread.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/spmatrix.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/spconfig.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/section.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/scoplib_ansi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/scoplib.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/options.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/ocmisc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/ocfunc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/oc_ansi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnredef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnran123.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnmpidec.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnmpi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnoc_ml.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnjava.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrniv_mf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnisaac.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrncvode.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnassrt.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnapi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrn_ansi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nmodlmutex.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/neuron.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/multisplit.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/multicore.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/membfunc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/membdef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/md2redef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/md1redef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/ivstream.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/hocparse.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/hoclist.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/hocgetsym.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/hocdec.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/hocassrt.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/hoc_membf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/hoc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/cspredef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/cspmatrix.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/cabvars.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnconf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrncvode -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrncvode/nrnneosm.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnmpiuse.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nrniv -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nocmodl -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/modlunit -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/libnrniv.so.0.0.0 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/libnrniv.so -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/nrn/nrnmain.cpp -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnmpiuse.h -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrncvode/nrnneosm.h -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/include/nrnconf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nrngui -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/neurondemo -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nrnivmodl -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nrnmech_makefile -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nrnpyenv.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/sortspike -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/mkthreadsafe -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nrnpyenv.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/set_nrnpyenv.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/librxdmath.so.0.0.0 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/librxdmath.so -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python/neuron -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python/neuron/rxd -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python/neuron/rxd/geometry3d -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python/neuron/rxd/geometry3d/setup.py -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python/neuron/rxd/geometry3d/CMakeFiles -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python/neuron/rxd/constants.py make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu' + RPM_LD_FLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64' + pushd x86_64-redhat-linux-gnu/src/nrnpython/ ~/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/src/nrnpython ~/build/BUILD/nrn-7.8.1 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64' + /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s' running build running build_py creating build creating build/lib.linux-x86_64-3.9 creating build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/__init__.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/coreneuron.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/doc.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/gui.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/hclass2.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/hclass3.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/nonvint_block_supervisor.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/psection.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/sections.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/units.py -> build/lib.linux-x86_64-3.9/neuron creating build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/neuroml/__init__.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/neuroml/biophysics.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/neuroml/metadata.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/neuroml/morphml.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/neuroml/neuroml.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/neuroml/rdxml.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/neuroml/xml2nrn.py -> build/lib.linux-x86_64-3.9/neuron/neuroml creating build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/tests/__init__.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/tests/_subclass.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/tests/test_all.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/tests/test_neuron.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/tests/test_rxd.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/tests/test_vector.py -> build/lib.linux-x86_64-3.9/neuron/tests creating build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/__init__.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/dimension3.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/export.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/generalizedReaction.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/gui.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/initializer.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/multiCompartmentReaction.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/node.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/nodelist.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/options.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/plugins.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/rangevar.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/rate.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/reaction.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/region.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/rxdException.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/rxdmath.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/rxdsection.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/section1d.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/species.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/rxd.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/constants.py -> build/lib.linux-x86_64-3.9/neuron/rxd creating build/lib.linux-x86_64-3.9/neuron/crxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/crxd/__init__.py -> build/lib.linux-x86_64-3.9/neuron/crxd creating build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/gui2/__init__.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/gui2/config.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/gui2/plotshape.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/gui2/rangevar.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/gui2/setup_threejs.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/gui2/utilities.py -> build/lib.linux-x86_64-3.9/neuron/gui2 creating build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry3d/FullJoinMorph.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry3d/GeneralizedVoxelization.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry3d/__init__.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry3d/scalarField.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry3d/simplevolume_helper.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry3d/surface.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry3d/surface_a.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry3d/triangularMesh.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry3d/voxelize.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/share/nrn/lib/python/neuron/rxd/geometry3d/voxelize2.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d running build_ext building 'neuron.hoc' extension creating build/temp.linux-x86_64-3.9 /usr/bin/gcc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -DNRNCMAKE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I../oc -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/usr/include/python3.9 -c inithoc.cpp -o build/temp.linux-x86_64-3.9/inithoc.o inithoc.cpp: In function ‘PyInit_hoc’: inithoc.cpp:245:22: warning: array subscript [3, 5] is outside array bounds of ‘const char *[3]’ [-Warray-bounds] 245 | argv[argc - 1] = new char[strlen(env_nframe) + 1]; | ~~~~~~~~~~~~~^ inithoc.cpp:59:20: note: while referencing ‘argv_nompi’ 59 | static const char* argv_nompi[] = {"NEURON", "-dll", 0}; | ^~~~~~~~~~ /usr/bin/g++ -pthread -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection build/temp.linux-x86_64-3.9/inithoc.o -L/usr/lib -L/usr/include/../lib -L/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu/lib -L/usr/lib64 -lnrniv -linterviews -o build/lib.linux-x86_64-3.9/neuron/hoc.cpython-39-x86_64-linux-gnu.so -Wl,-R/usr/lib -Wl,-R/usr/include/../lib + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64' + /usr/bin/python3 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 --install-lib /usr/lib64/python3.9/site-packages running install running install_lib creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9 creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron copying build/lib.linux-x86_64-3.9/neuron/hoc.cpython-39-x86_64-linux-gnu.so -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/utilities.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/setup_threejs.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/rangevar.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/plotshape.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/config.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2 creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/crxd copying build/lib.linux-x86_64-3.9/neuron/crxd/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/crxd creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/voxelize2.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/voxelize.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/triangularMesh.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/surface_a.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/surface.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/simplevolume_helper.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/scalarField.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/GeneralizedVoxelization.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/FullJoinMorph.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/constants.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxd.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/species.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/section1d.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxdsection.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxdmath.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxdException.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/region.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/reaction.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rate.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rangevar.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/plugins.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/options.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/nodelist.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/node.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/multiCompartmentReaction.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/initializer.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/gui.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/generalizedReaction.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/export.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/dimension3.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_vector.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_rxd.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_neuron.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_all.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/_subclass.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/xml2nrn.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/rdxml.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/neuroml.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/morphml.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/metadata.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/biophysics.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/units.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron copying build/lib.linux-x86_64-3.9/neuron/sections.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron copying build/lib.linux-x86_64-3.9/neuron/psection.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron copying build/lib.linux-x86_64-3.9/neuron/nonvint_block_supervisor.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron copying build/lib.linux-x86_64-3.9/neuron/hclass3.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron copying build/lib.linux-x86_64-3.9/neuron/hclass2.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron copying build/lib.linux-x86_64-3.9/neuron/gui.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron copying build/lib.linux-x86_64-3.9/neuron/doc.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron copying build/lib.linux-x86_64-3.9/neuron/coreneuron.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron copying build/lib.linux-x86_64-3.9/neuron/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2/utilities.py to utilities.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2/setup_threejs.py to setup_threejs.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2/rangevar.py to rangevar.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2/plotshape.py to plotshape.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2/config.py to config.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui2/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/crxd/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d/voxelize2.py to voxelize2.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d/voxelize.py to voxelize.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d/triangularMesh.py to triangularMesh.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d/surface_a.py to surface_a.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d/surface.py to surface.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d/simplevolume_helper.py to simplevolume_helper.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d/scalarField.py to scalarField.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d/GeneralizedVoxelization.py to GeneralizedVoxelization.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry3d/FullJoinMorph.py to FullJoinMorph.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/constants.py to constants.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/rxd.py to rxd.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/species.py to species.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/section1d.py to section1d.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/rxdsection.py to rxdsection.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/rxdmath.py to rxdmath.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/rxdException.py to rxdException.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/region.py to region.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/reaction.py to reaction.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/rate.py to rate.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/rangevar.py to rangevar.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/plugins.py to plugins.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/options.py to options.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/nodelist.py to nodelist.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/node.py to node.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/multiCompartmentReaction.py to multiCompartmentReaction.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/initializer.py to initializer.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/gui.py to gui.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/geometry.py to geometry.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/generalizedReaction.py to generalizedReaction.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/export.py to export.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/dimension3.py to dimension3.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/rxd/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests/test_vector.py to test_vector.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests/test_rxd.py to test_rxd.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests/test_neuron.py to test_neuron.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests/test_all.py to test_all.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests/_subclass.py to _subclass.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/tests/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml/xml2nrn.py to xml2nrn.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml/rdxml.py to rdxml.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml/neuroml.py to neuroml.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml/morphml.py to morphml.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml/metadata.py to metadata.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml/biophysics.py to biophysics.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/neuroml/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/units.py to units.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/sections.py to sections.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/psection.py to psection.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/nonvint_block_supervisor.py to nonvint_block_supervisor.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/hclass3.py to hclass3.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/hclass2.py to hclass2.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/gui.py to gui.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/doc.py to doc.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/coreneuron.py to coreneuron.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/__init__.py to __init__.cpython-39.pyc writing byte-compilation script '/tmp/tmptetotm71.py' /usr/bin/python3 /tmp/tmptetotm71.py removing /tmp/tmptetotm71.py running install_data creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python3.9 creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python3.9/site-packages creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python3.9/site-packages/neuron copying /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/help_data.dat -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python3.9/site-packages/neuron running install_egg_info Writing /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/NEURON-7.8-py3.9.egg-info + rm -rfv /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/__pycache__ + popd ~/build/BUILD/nrn-7.8.1 ~/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64 ~/build/BUILD/nrn-7.8.1 + pushd /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/ + ln -sv ./libnrniv.so.0.0.0 libnrniv.so.0 'libnrniv.so.0' -> './libnrniv.so.0.0.0' + ln -sv ./librxdmath.so.0.0.0 librxdmath.so.0 'librxdmath.so.0' -> './librxdmath.so.0.0.0' ~/build/BUILD/nrn-7.8.1 + popd + rm -rfv /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib/python/neuron/ removed '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib/python/neuron/rxd/constants.py' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib/python/neuron/rxd/geometry3d/CMakeFiles' removed '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib/python/neuron/rxd/geometry3d/setup.py' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib/python/neuron/rxd/geometry3d' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib/python/neuron/rxd' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib/python/neuron/' + find . /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/ -name '*.o' -exec rm -f '{}' ';' + find . /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/ -name '*.la' -exec rm -f '{}' ';' + rm -rf /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/include/ivstream.h + rm -fv /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/share/nrn/libtool + '[' x '!=' x ']' + . /etc/profile.d/modules.sh ++ . /etc/profile.d/00-modulepath.sh +++ '[' -z /etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ']' +++ : ++ '[' -z '' ']' ++ LMOD_ALLOW_ROOT_USE=yes ++ '[' -n '' ']' ++ '[' yes '!=' yes ']' ++ '[' -z /usr/share/modulefiles ']' ++ findExec PS_CMD /usr/bin/ps ps ++ Nm=PS_CMD ++ confPath=/usr/bin/ps ++ execNm=ps ++ eval PS_CMD=/usr/bin/ps +++ PS_CMD=/usr/bin/ps ++ '[' '!' -x /usr/bin/ps ']' ++ unset Nm confPath execNm ++ findExec EXPR_CMD /usr/bin/expr expr ++ Nm=EXPR_CMD ++ confPath=/usr/bin/expr ++ execNm=expr ++ eval EXPR_CMD=/usr/bin/expr +++ EXPR_CMD=/usr/bin/expr ++ '[' '!' -x /usr/bin/expr ']' ++ unset Nm confPath execNm ++ findExec BASENAME_CMD /usr/bin/basename basename ++ Nm=BASENAME_CMD ++ confPath=/usr/bin/basename ++ execNm=basename ++ eval BASENAME_CMD=/usr/bin/basename +++ BASENAME_CMD=/usr/bin/basename ++ '[' '!' -x /usr/bin/basename ']' ++ unset Nm confPath execNm ++ unset -f findExec +++ /usr/bin/ps -p 53131 -ocomm= ++ my_shell=sh +++ /usr/bin/expr sh : '-*\(.*\)' ++ my_shell=sh +++ /usr/bin/basename sh ++ my_shell=sh ++ '[' -f /usr/share/lmod/lmod/init/sh ']' ++ . /usr/share/lmod/lmod/init/sh +++ LMOD_ROOT=/usr/share/lmod +++ LMOD_PKG=/usr/share/lmod/lmod +++ LMOD_DIR=/usr/share/lmod/lmod/libexec/ +++ LMOD_CMD=/usr/share/lmod/lmod/libexec/lmod +++ MODULESHOME=/usr/share/lmod/lmod +++ export LMOD_CMD +++ export LMOD_PKG +++ export LMOD_DIR +++ export MODULESHOME +++ export LMOD_DIR ++ unset my_shell PS_CMD EXPR_CMD BASENAME_CMD MODULEPATH_INIT LMOD_ALLOW_ROOT_USE + module load mpi/mpich-x86_64 ++ /usr/share/lmod/lmod/libexec/lmod sh load mpi/mpich-x86_64 + eval '__LMOD_REF_COUNT_LD_LIBRARY_PATH=/usr/lib64/mpich/lib:1;' export '__LMOD_REF_COUNT_LD_LIBRARY_PATH;' 'LD_LIBRARY_PATH=/usr/lib64/mpich/lib;' export 'LD_LIBRARY_PATH;' '__LMOD_REF_COUNT_LOADEDMODULES=mpi/mpich-x86_64:1;' export '__LMOD_REF_COUNT_LOADEDMODULES;' 'LOADEDMODULES=mpi/mpich-x86_64;' export 'LOADEDMODULES;' '__LMOD_REF_COUNT_MANPATH=/usr/share/man/mpich-x86_64:1\;/usr/share/lmod/lmod/share/man:1;' export '__LMOD_REF_COUNT_MANPATH;' 'MANPATH=:/usr/share/man/mpich-x86_64:/usr/share/lmod/lmod/share/man;' export 'MANPATH;' '__LMOD_REF_COUNT_MODULEPATH=/etc/modulefiles:1\;/usr/share/modulefiles:1\;/usr/share/modulefiles/Linux:1\;/usr/share/modulefiles/Core:1\;/usr/share/lmod/lmod/modulefiles/Core:1;' export '__LMOD_REF_COUNT_MODULEPATH;' 'MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core;' export 'MODULEPATH;' 'MPI_BIN=/usr/lib64/mpich/bin;' export 'MPI_BIN;' 'MPI_COMPILER=mpich-x86_64;' export 'MPI_COMPILER;' 'MPI_FORTRAN_MOD_DIR=/usr/lib64/gfortran/modules/mpich;' export 'MPI_FORTRAN_MOD_DIR;' 'MPI_HOME=/usr/lib64/mpich;' export 'MPI_HOME;' 'MPI_INCLUDE=/usr/include/mpich-x86_64;' export 'MPI_INCLUDE;' 'MPI_LIB=/usr/lib64/mpich/lib;' export 'MPI_LIB;' 'MPI_MAN=/usr/share/man/mpich-x86_64;' export 'MPI_MAN;' 'MPI_PYTHON2_SITEARCH=%\{python2_sitearch\}/mpich;' export 'MPI_PYTHON2_SITEARCH;' 'MPI_PYTHON3_SITEARCH=/usr/lib64/python3.9/site-packages/mpich;' export 'MPI_PYTHON3_SITEARCH;' 'MPI_PYTHON_SITEARCH=%\{python2_sitearch\}/mpich;' export 'MPI_PYTHON_SITEARCH;' 'MPI_SUFFIX=_mpich;' export 'MPI_SUFFIX;' 'MPI_SYSCONFIG=/etc/mpich-x86_64;' export 'MPI_SYSCONFIG;' '__LMOD_REF_COUNT_PATH=/usr/lib64/mpich/bin:1\;/builddir/.local/bin:1\;/builddir/bin:1\;/usr/bin:1\;/bin:1\;/usr/sbin:1\;/sbin:1\;/usr/local/sbin:1;' export '__LMOD_REF_COUNT_PATH;' 'PATH=/usr/lib64/mpich/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin;' export 'PATH;' '__LMOD_REF_COUNT_PKG_CONFIG_PATH=/usr/lib64/mpich/lib/pkgconfig:1\;/usr/lib64/pkgconfig:1\;/usr/share/pkgconfig:1;' export '__LMOD_REF_COUNT_PKG_CONFIG_PATH;' 'PKG_CONFIG_PATH=/usr/lib64/mpich/lib/pkgconfig::/usr/lib64/pkgconfig:/usr/share/pkgconfig;' export 'PKG_CONFIG_PATH;' '__LMOD_REF_COUNT__LMFILES_=/usr/share/modulefiles/mpi/mpich-x86_64:1;' export '__LMOD_REF_COUNT__LMFILES_;' '_LMFILES_=/usr/share/modulefiles/mpi/mpich-x86_64;' export '_LMFILES_;' '_ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXttcGk9e1siZm4iXT0iL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9tcGkvbXBpY2gteDg2XzY0IixbImZ1bGxOYW1lIl09Im1waS9tcGljaC14ODZfNjQiLFsibG9hZE9yZGVyIl09MSxwcm9wVD17fSxbInN0YWNrRGVwdGgiXT0wLFsic3RhdHVzIl09ImFjdGl2ZSIsWyJ1c2VyTmFtZSJdPSJtcGkvbXBpY2gteDg2XzY0Iix9LH0sbXBhdGhBPXsiL2V0Yy9tb2R1bGVmaWxlcyIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzL0xpbnV4IiwiL3Vzci9zaGFyZS9tb2R1;' export '_ModuleTable001_;' '_ModuleTable002_=bGVmaWxlcy9Db3JlIiwiL3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfSxbInN5c3RlbUJhc2VNUEFUSCJdPSIvZXRjL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXM6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eDovdXNyL3NoYXJlL21vZHVsZWZpbGVzL0NvcmU6L3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfQ==;' export '_ModuleTable002_;' '_ModuleTable_Sz_=2;' export '_ModuleTable_Sz_;' *** INSTALLING neuron-7.8.1-mpich *** ++ __LMOD_REF_COUNT_LD_LIBRARY_PATH=/usr/lib64/mpich/lib:1 ++ export __LMOD_REF_COUNT_LD_LIBRARY_PATH ++ LD_LIBRARY_PATH=/usr/lib64/mpich/lib ++ export LD_LIBRARY_PATH ++ __LMOD_REF_COUNT_LOADEDMODULES=mpi/mpich-x86_64:1 ++ export __LMOD_REF_COUNT_LOADEDMODULES ++ LOADEDMODULES=mpi/mpich-x86_64 ++ export LOADEDMODULES ++ __LMOD_REF_COUNT_MANPATH='/usr/share/man/mpich-x86_64:1;/usr/share/lmod/lmod/share/man:1' ++ export __LMOD_REF_COUNT_MANPATH ++ MANPATH=:/usr/share/man/mpich-x86_64:/usr/share/lmod/lmod/share/man ++ export MANPATH ++ __LMOD_REF_COUNT_MODULEPATH='/etc/modulefiles:1;/usr/share/modulefiles:1;/usr/share/modulefiles/Linux:1;/usr/share/modulefiles/Core:1;/usr/share/lmod/lmod/modulefiles/Core:1' ++ export __LMOD_REF_COUNT_MODULEPATH ++ MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ++ export MODULEPATH ++ MPI_BIN=/usr/lib64/mpich/bin ++ export MPI_BIN ++ MPI_COMPILER=mpich-x86_64 ++ export MPI_COMPILER ++ MPI_FORTRAN_MOD_DIR=/usr/lib64/gfortran/modules/mpich ++ export MPI_FORTRAN_MOD_DIR ++ MPI_HOME=/usr/lib64/mpich ++ export MPI_HOME ++ MPI_INCLUDE=/usr/include/mpich-x86_64 ++ export MPI_INCLUDE ++ MPI_LIB=/usr/lib64/mpich/lib ++ export MPI_LIB ++ MPI_MAN=/usr/share/man/mpich-x86_64 ++ export MPI_MAN ++ MPI_PYTHON2_SITEARCH='%{python2_sitearch}/mpich' ++ export MPI_PYTHON2_SITEARCH ++ MPI_PYTHON3_SITEARCH=/usr/lib64/python3.9/site-packages/mpich ++ export MPI_PYTHON3_SITEARCH ++ MPI_PYTHON_SITEARCH='%{python2_sitearch}/mpich' ++ export MPI_PYTHON_SITEARCH ++ MPI_SUFFIX=_mpich ++ export MPI_SUFFIX ++ MPI_SYSCONFIG=/etc/mpich-x86_64 ++ export MPI_SYSCONFIG ++ __LMOD_REF_COUNT_PATH='/usr/lib64/mpich/bin:1;/builddir/.local/bin:1;/builddir/bin:1;/usr/bin:1;/bin:1;/usr/sbin:1;/sbin:1;/usr/local/sbin:1' ++ export __LMOD_REF_COUNT_PATH ++ PATH=/usr/lib64/mpich/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin ++ export PATH ++ __LMOD_REF_COUNT_PKG_CONFIG_PATH='/usr/lib64/mpich/lib/pkgconfig:1;/usr/lib64/pkgconfig:1;/usr/share/pkgconfig:1' ++ export __LMOD_REF_COUNT_PKG_CONFIG_PATH ++ PKG_CONFIG_PATH=/usr/lib64/mpich/lib/pkgconfig::/usr/lib64/pkgconfig:/usr/share/pkgconfig ++ export PKG_CONFIG_PATH ++ __LMOD_REF_COUNT__LMFILES_=/usr/share/modulefiles/mpi/mpich-x86_64:1 ++ export __LMOD_REF_COUNT__LMFILES_ ++ _LMFILES_=/usr/share/modulefiles/mpi/mpich-x86_64 ++ export _LMFILES_ ++ _ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXttcGk9e1siZm4iXT0iL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9tcGkvbXBpY2gteDg2XzY0IixbImZ1bGxOYW1lIl09Im1waS9tcGljaC14ODZfNjQiLFsibG9hZE9yZGVyIl09MSxwcm9wVD17fSxbInN0YWNrRGVwdGgiXT0wLFsic3RhdHVzIl09ImFjdGl2ZSIsWyJ1c2VyTmFtZSJdPSJtcGkvbXBpY2gteDg2XzY0Iix9LH0sbXBhdGhBPXsiL2V0Yy9tb2R1bGVmaWxlcyIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzL0xpbnV4IiwiL3Vzci9zaGFyZS9tb2R1 ++ export _ModuleTable001_ ++ _ModuleTable002_=bGVmaWxlcy9Db3JlIiwiL3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfSxbInN5c3RlbUJhc2VNUEFUSCJdPSIvZXRjL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXM6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eDovdXNyL3NoYXJlL21vZHVsZWZpbGVzL0NvcmU6L3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfQ== ++ export _ModuleTable002_ ++ _ModuleTable_Sz_=2 ++ export _ModuleTable_Sz_ + export 'CFLAGS= -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + CFLAGS=' -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + export MPI_COMPILE_TYPE=-mpich + MPI_COMPILE_TYPE=-mpich + export MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu-mpich + MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu-mpich + echo + echo '*** INSTALLING neuron-7.8.1-mpich ***' + echo + /usr/bin/make install DESTDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 'INSTALL=/usr/bin/install -p' -C x86_64-redhat-linux-gnu-mpich make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/cmake -S/builddir/build/BUILD/nrn-7.8.1 -B/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/CMakeFiles /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich//CMakeFiles/progress.marks /usr/bin/make -f CMakeFiles/Makefile2 all make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nocmodl.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 0%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y: In function 'yyparse': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y:1127:48: warning: unused variable 'd' [-Wunused-variable] 1127 | {Item *q; double d, unit_mag(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y:1127:38: warning: unused variable 'q' [-Wunused-variable] 1127 | {Item *q; double d, unit_mag(); | ^ [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/diffeq.c [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c:1433:17: warning: 'yyunput' defined but not used [-Wunused-function] 1433 | | ^ [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/consist.c [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c: In function 'massagederiv': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c:432:40: warning: unused variable 'solve_seen' [-Wunused-variable] 432 | int count = 0, deriv_implicit, solve_seen; | ^~~~~~~~~~ [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/discrete.c [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:16:30: warning: missing braces around initializer [-Wmissing-braces] 16 | } keywords[] = { | ^ 17 | "VERBATIM", VERBATIM, | { } 18 | "COMMENT", COMMENT, | { } 19 | "TITLE", MODEL, | { } 20 | "CONSTANT", CONSTANT, | { } 21 | "PARAMETER", PARAMETER, | { } 22 | "INDEPENDENT", INDEPENDENT, | { } 23 | "ASSIGNED", DEPENDENT, | { } 24 | "INITIAL", INITIAL1, | { } 25 | "TERMINAL", TERMINAL, | { } 26 | "DERIVATIVE", DERIVATIVE, | { } 27 | "EQUATION", EQUATION, | { } 28 | "BREAKPOINT", BREAKPOINT, | { } 29 | "CONDUCTANCE", CONDUCTANCE, | { } 30 | "SOLVE", SOLVE, | { } 31 | "STATE", STATE, | { } 32 | "STEPPED", STEPPED, | { } 33 | "LINEAR", LINEAR, | { } 34 | "NONLINEAR", NONLINEAR, | { } 35 | "DISCRETE", DISCRETE, | { } 36 | "FUNCTION", FUNCTION1, | { } 37 | "FUNCTION_TABLE", FUNCTION_TABLE, | { } 38 | "PROCEDURE", PROCEDURE, | { } 39 | "PARTIAL", PARTIAL, | { } 40 | "INT", INT, | { } 41 | "DEL2", DEL2, | { } 42 | "DEL", DEL, | { } 43 | "LOCAL", LOCAL, | { } 44 | "METHOD", USING, | { } 45 | "STEADYSTATE", USING, | { } 46 | "SENS", SENS, | { } 47 | "STEP", STEP, | { } 48 | "WITH", WITH, | { } 49 | "FROM", FROM, | { } 50 | "FORALL", FORALL1, | { } 51 | "TO", TO, | { } 52 | "BY", BY, | { } 53 | "if", IF, | { } 54 | "else", ELSE, | { } 55 | "while", WHILE, | { } 56 | "START", START1, | { } 57 | "DEFINE", DEFINE1, | { } 58 | 59 | "KINETIC", KINETIC, | { } 60 | "CONSERVE", CONSERVE, | { } 61 | "PLOT", PLOT, | { } 62 | "VS", VS, | { } 63 | "LAG", LAG, | { } 64 | "RESET", RESET, | { } 65 | "MATCH", MATCH, | { } 66 | "MODEL_LEVEL", MODEL_LEVEL, /* inserted by merge */ | { } 67 | "SWEEP", SWEEP, | { } 68 | "FIRST", FIRST, | { } 69 | "LAST", LAST, | { } 70 | "COMPARTMENT", COMPARTMENT, | { } 71 | "LONGITUDINAL_DIFFUSION", LONGDIFUS, | { } 72 | "PUTQ", PUTQ, | { } 73 | "GETQ", GETQ, | { } 74 | "IFERROR", IFERROR, | { } 75 | "SOLVEFOR", SOLVEFOR, | { } 76 | "UNITS", UNITS, | { } 77 | "UNITSON", UNITSON, | { } 78 | "UNITSOFF", UNITSOFF, | { } 79 | "TABLE", TABLE, | { } 80 | "DEPEND", DEPEND, | { } 81 | "NEURON", NEURON, | { } 82 | "SUFFIX", SUFFIX, | { } 83 | "POINT_PROCESS", SUFFIX, | { } 84 | "ARTIFICIAL_CELL", SUFFIX, | { } 85 | "NONSPECIFIC_CURRENT", NONSPECIFIC, | { } 86 | "ELECTRODE_CURRENT", ELECTRODE_CURRENT, | { } 87 | "SECTION", SECTION, | { } 88 | "RANGE", RANGE, | { } 89 | "USEION", USEION, | { } 90 | "READ", READ, | { } 91 | "WRITE", WRITE, | { } 92 | "VALENCE", VALENCE, | { } 93 | "CHARGE", VALENCE, | { } 94 | "GLOBAL", GLOBAL, | { } 95 | "POINTER", POINTER, | { } 96 | "BBCOREPOINTER", BBCOREPOINTER, | { } 97 | "EXTERNAL", EXTERNAL, | { } 98 | "INCLUDE", INCLUDE1, | { } 99 | "CONSTRUCTOR", CONSTRUCTOR, | { } 100 | "DESTRUCTOR", DESTRUCTOR, | { } 101 | "NET_RECEIVE", NETRECEIVE, | { } 102 | "BEFORE", BEFORE, /* before NEURON sets up cy' = f(y,t) */ | { } 103 | "AFTER", AFTER, /* after NEURON solves cy' = f(y, t) */ | { } 104 | "WATCH", WATCH, | { } 105 | "FOR_NETCONS", FOR_NETCONS, | { } 106 | "THREADSAFE", THREADSAFE, | { } 107 | "PROTECT", PROTECT, | { } 108 | "MUTEXLOCK", NRNMUTEXLOCK, | { } 109 | "MUTEXUNLOCK", NRNMUTEXUNLOCK, | { } 110 | "REPRESENTS", REPRESENTS, | { } 111 | 0, 0 | { 112 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:122:29: warning: missing braces around initializer [-Wmissing-braces] 122 | } special[] = { | ^ 123 | ";", SEMI, &semi, | { } 124 | "{", BEGINBLK, &beginblk, | { } 125 | "}", ENDBLK, &endblk, | { } 126 | 0, 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:133:29: warning: missing braces around initializer [-Wmissing-braces] 133 | } methods[] = { | ^ 134 | "adams", DERF | KINF, 0, | { } 135 | "runge", DERF | KINF, 0, | { } 136 | "euler", DERF | KINF, 0, | { } 137 | "adeuler", DERF | KINF, 1, | { } 138 | "heun", DERF | KINF, 0, | { } 139 | "adrunge", DERF | KINF, 1, | { } 140 | "gear", DERF | KINF, 1, | { } 141 | "newton", NLINF, 0, | { } 142 | "simplex", NLINF, 0, | { } 143 | "simeq", LINF, 0, | { } 144 | "seidel", LINF, 0, | { } 145 | "_advance", KINF, 0, | { } 146 | "sparse", KINF, 0, | { } 147 | "derivimplicit", DERF, 0, /* name hard wired in deriv.c */ | { } 148 | "cnexp", DERF, 0, /* see solve.c */ | { } 149 | "clsoda", DERF | KINF, 1, /* Tolerance built in to | { } 150 | scopgear.c */ 151 | "after_cvode", 0, 0, | { } 152 | "cvode_t", 0, 0, | { } 153 | "cvode_t_v", 0, 0, | { } 154 | 0, 0, 0 | { 155 | }; | } [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/io.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/io.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/io.c [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'flux': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:251:29: warning: unused variable 'isfunc' [-Wunused-variable] 251 | int isfunc; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'kinetic_implicit': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:706:30: warning: unused variable 'sparsedec' [-Wunused-variable] 706 | int i, nstate, flag, sparsedec, firsttrans, firsttrans1; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'massageconserve': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1024:15: warning: variable 'qv' set but not used [-Wunused-but-set-variable] 1024 | Item* qv; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'kinlist': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1160:15: warning: variable 'qv' set but not used [-Wunused-but-set-variable] 1160 | Item* qv; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'single_channel': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1590:13: warning: variable 'nstate' set but not used [-Wunused-but-set-variable] 1590 | int nstate, i; | ^~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1415:14: warning: 'astmt_last' defined but not used [-Wunused-variable] 1415 | static Item* astmt_last; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:120:12: warning: 'sparsedeclared' defined but not used [-Wunused-function] 120 | static int sparsedeclared(i) int i; { | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:110:14: warning: 'instance_loop' defined but not used [-Wunused-function] 110 | static char* instance_loop() { | ^~~~~~~~~~~~~ [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/list.c [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.c:77:13: warning: 'pgm_name' defined but not used [-Wunused-variable] 77 | static char pgm_name[] = "nmodl"; | ^~~~~~~~ [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'parout': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:224:16: warning: unused variable 'j' [-Wunused-variable] 224 | int i, j, ioncount, pointercount, gind, emit_check_table_thread; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'decode_limits': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:1377:16: warning: unused variable 'd1' [-Wunused-variable] 1377 | double d1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'decode_tolerance': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:1404:16: warning: unused variable 'd1' [-Wunused-variable] 1404 | double d1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'cvode_rw_cur': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2537:17: warning: variable 'sion' set but not used [-Wunused-but-set-variable] 2537 | Symbol* sion; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'net_receive': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2566:16: warning: unused variable 'b' [-Wunused-variable] 2566 | int i, b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'conductance_hint': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2744:15: warning: unused variable 'q' [-Wunused-variable] 2744 | Item* q; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:180:12: warning: 'cvode_index' defined but not used [-Wunused-variable] 180 | static int cvode_index; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:177:12: warning: 'cond_index' defined but not used [-Wunused-variable] 177 | static int cond_index; | ^~~~~~~~~~ [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/noccout.c [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'vectorize_scan_for_func': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:403:13: warning: unused variable 'b' [-Wunused-variable] 403 | int b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:402:19: warning: unused variable 'qq' [-Wunused-variable] 402 | Item* q, *qq; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'defarg': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:425:25: warning: unused variable 'q3' [-Wunused-variable] 425 | Item *q3, *q; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'hocfunchack': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:959:15: warning: unused variable 'q' [-Wunused-variable] 959 | Item *q; | ^ [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c: In function 'general_discon_adjust': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c:158:7: warning: unused variable 'i' [-Wunused-variable] 158 | int i; | ^ [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/partial.c [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/sens.c [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/simultan.c [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c: In function 'whileloop': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c:393:15: warning: variable 'cp' set but not used [-Wunused-but-set-variable] 393 | char *cp=0; | ^~ [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:3: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c: In function 'lookup': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:25:30: warning: array subscript has type 'char' [-Wchar-subscripts] 25 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.h:110:38: note: in definition of macro 'ITERATE' 110 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:25:30: warning: array subscript has type 'char' [-Wchar-subscripts] 25 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.h:110:58: note: in definition of macro 'ITERATE' 110 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c: In function 'install': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:65:31: warning: array subscript has type 'char' [-Wchar-subscripts] 65 | sl = symlist[s[0]]; | ~^~~ [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/units.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/units.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/units.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nmodl/units.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:76:1: warning: missing braces around initializer [-Wmissing-braces] 76 | { | ^ 77 | 1e-18, "atto", | { } 78 | 1e-15, "femto", | { } 79 | 1e-12, "pico", | { } 80 | 1e-9, "nano", | { } 81 | 1e-6, "micro", | { } 82 | 1e-3, "milli", | { } 83 | 1e-2, "centi", | { } 84 | 1e-1, "deci", | { } 85 | 1e1, "deka", | { } 86 | 1e2, "hecta", | { } 87 | 1e2, "hecto", | { } 88 | 1e3, "kilo", | { } 89 | 1e6, "mega", | { } 90 | 1e6, "meg", | { } 91 | 1e9, "giga", | { } 92 | 1e12, "tera", | { } 93 | 0.0, 0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'pu': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:660:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 660 | if(u > 1) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 662 | return(2); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'unit_stk_clean': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'punit': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:185:34: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 185 | for (i=usp; i!=unit_stack-1; --i) { | ~~~~~~~~~~^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'unit_init': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/version.c [ 5%] Linking C executable ../../bin/nocmodl cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nocmodl.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o CMakeFiles/nocmodl.dir/__/nmodl/init.c.o CMakeFiles/nocmodl.dir/__/nmodl/io.c.o CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o CMakeFiles/nocmodl.dir/__/nmodl/list.c.o CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o CMakeFiles/nocmodl.dir/__/nmodl/units.c.o CMakeFiles/nocmodl.dir/__/nmodl/version.c.o -o ../../bin/nocmodl make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Built target nocmodl /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/CMakeFiles/hh_update.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Update hh.mod for CoreNEURON compatibility sed "s/ RANGE minf/ GLOBAL minf/" /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.1 sed "s/ :TABLE minf/ TABLE minf/" /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.1 > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.2 /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.2 /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod /usr/bin/cmake -E remove /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/hh.mod.2 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Built target hh_update /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 5%] Generating ../../../src/nrnoc/apcount.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c [ 6%] Generating ../../../src/nrnoc/exp2syn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c [ 6%] Generating ../../../src/nrnoc/expsyn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c [ 7%] Generating ../../../src/nrnoc/feature.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c Notice: VERBATIM blocks are not thread safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c [ 7%] Generating ../../../src/nrnoc/hh.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c [ 7%] Generating ../../../src/nrnoc/intfire1.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c [ 7%] Generating ../../../src/nrnoc/intfire2.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c [ 7%] Generating ../../../src/nrnoc/intfire4.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c [ 7%] Generating ../../../src/nrnoc/netstim.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c Notice: ARTIFICIAL_CELL is a synonym for POINT_PROCESS which hints that it only affects and is affected by discrete events. As such it is not located in a section and is not associated with an integrator Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c [ 7%] Generating ../../../src/nrnoc/oclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c [ 7%] Generating ../../../src/nrnoc/passive.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c [ 8%] Generating ../../../src/nrnoc/pattern.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c Notice: Use of POINTER is not thread safe. Notice: VERBATIM blocks are not thread safe Notice: ARTIFICIAL_CELL is a synonym for POINT_PROCESS which hints that it only affects and is affected by discrete events. As such it is not located in a section and is not associated with an integrator cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c [ 8%] Generating ../../../src/nrnoc/ppmark.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c [ 9%] Generating ../../../src/nrnoc/stim.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c [ 9%] Generating ../../../src/nrnoc/svclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c [ 9%] Generating ../../../src/nrnoc/syn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c [ 9%] Generating ../../../src/nrnoc/vclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c Notice: VERBATIM blocks are not thread safe Notice: LINEAR is not thread safe. cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nrniv_lib.dir/DependInfo.cmake --color= Scanning dependencies of target nrniv_lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 9%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/apwindow.cpp [ 9%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/axis.cpp [ 9%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/bndedval.cpp [ 10%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/cbwidget.cpp [ 10%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/checkpnt.cpp [ 10%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/epsprint.cpp [ 10%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:38: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_real_radix2.c: In function 'int nrngsl_fft_real_radix2_transform(double*, size_t, size_t)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_real_radix2.c:91:7: warning: variable 'status' set but not used [-Wunused-but-set-variable] 91 | int status; | ^~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:39: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_hc_radix2.c: In function 'int nrngsl_fft_halfcomplex_radix2_transform(double*, size_t, size_t)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_hc_radix2.c:63:7: warning: variable 'status' set but not used [-Wunused-but-set-variable] 63 | int status; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp: In function 'void nrn_convlv(double*, long unsigned int, double*, long unsigned int, int, double*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:98:21: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 98 | for (i=1; i < n2; ++i) { | ~~^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:86:21: warning: unused variable 'x_' [-Wunused-variable] 86 | double scl, x_; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp: In function 'void nrn_spctrm(double*, double*, int, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:149:13: warning: variable 'ainv' set but not used [-Wunused-but-set-variable] 149 | double a, ainv, wfac, x_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:149:25: warning: unused variable 'x_' [-Wunused-variable] 149 | double a, ainv, wfac, x_; | ^~ [ 10%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'int LoadGIF(const char*, PICINFO*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:288:15: warning: variable 'ch' set but not used [-Wunused-but-set-variable] 288 | int ch, j, sbsize, cmtlen; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:156:22: warning: unused variable 'ch1' [-Wunused-variable] 156 | register byte ch, ch1, *origptr; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'int readImage(PICINFO*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:490:34: warning: unused variable 'picptr' [-Wunused-variable] 490 | register byte ch, ch1, *ptr1, *picptr; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:96:5: warning: 'BytesPerScanline' defined but not used [-Wunused-variable] 96 | BytesPerScanline, /* bytes per scanline in output raster */ | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'gif_image(char const*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:43:16: warning: 'image' may be used uninitialized in this function [-Wmaybe-uninitialized] 43 | return image; | ^~~~~ [ 11%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In function 'double ivoc_view_size(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:433:13: warning: unused variable 'i' [-Wunused-variable] 433 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'void Graph::ascii_save(std::ostream&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:1692:37: warning: unused variable 'j' [-Wunused-variable] 1692 | int j, jcnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'virtual void Graph::wholeplot(ivCoord&, ivCoord&, ivCoord&, ivCoord&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:1812:20: warning: unused variable 'gl' [-Wunused-variable] 1812 | GraphLine* gl; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'void Graph::cross_action(char, GPolyLine*, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:2064:22: warning: unused variable 'buf' [-Wunused-variable] 2064 | char buf[256]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'virtual void LineExtension::request(ivRequisition&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:3392:21: warning: unused variable 'eps' [-Wunused-variable] 3392 | const float eps = 1e-4; | ^~~ [ 11%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graphvec.cpp [ 11%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grglyph.cpp [ 11%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp: In member function 'virtual void HocMark::pick(ivCanvas*, const ivAllocation&, int, ivHit&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp:147:23: warning: unused variable 'x' [-Wunused-variable] 147 | Coord x = h.left(), y = h.bottom(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp:147:37: warning: unused variable 'y' [-Wunused-variable] 147 | Coord x = h.left(), y = h.bottom(); | ^ [ 11%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/hocmark.cpp [ 12%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/htlist.cpp [ 12%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/idraw.cpp [ 12%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivoc.cpp [ 12%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp: In function 'bool nrn_optarg_on(const char*, int*, const char**)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:337:15: warning: unused variable 'a' [-Wunused-variable] 337 | char* a; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:332:13: warning: 'bool nrn_optarg_on(const char*, int*, char**)' declared 'static' but never defined [-Wunused-function] 332 | static bool nrn_optarg_on(const char* opt, int* argc, char** argv); | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:333:14: warning: 'char* nrn_optarg(const char*, int*, char**)' declared 'static' but never defined [-Wunused-function] 333 | static char* nrn_optarg(const char* opt, int* argc, char** argv); | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:334:12: warning: 'int nrn_optargint(const char*, int*, char**, int)' declared 'static' but never defined [-Wunused-function] 334 | static int nrn_optargint(const char* opt, int* argc, char** argv, int dflt); | ^~~~~~~~~~~~~ [ 12%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:32: /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:93:8: warning: when initialized here [-Wreorder] 93 | inline RandomInteger::RandomInteger(long low, long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:99:8: warning: when initialized here [-Wreorder] 99 | inline RandomInteger::RandomInteger(long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:106:8: warning: when initialized here [-Wreorder] 106 | inline RandomInteger::RandomInteger(RNG *gen) | ^~~~~~~~~~~~~ [ 13%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_fread(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:445:12: note: in expansion of macro 'FRead' 445 | FRead(xs,sizeof(short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:454:12: note: in expansion of macro 'FRead' 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:460:12: note: in expansion of macro 'FRead' 460 | FRead(xf,sizeof(float),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:472:12: note: in expansion of macro 'FRead' 472 | FRead(xi,sizeof(unsigned short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:483:12: note: in expansion of macro 'FRead' 483 | FRead(xc,sizeof(char),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:418:15: warning: unused variable 's' [-Wunused-variable] 418 | void* s = (void*)(vp->vec()); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_vwrite(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:532:12: note: in expansion of macro 'FWrite' 532 | FWrite(xi,sizeof(int),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:541:12: note: in expansion of macro 'FWrite' 541 | FWrite(x,sizeof(double),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:551:12: note: in expansion of macro 'FWrite' 551 | FWrite(xf,sizeof(float),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:577:12: note: in expansion of macro 'FWrite' 577 | FWrite(x,sizeof(unsigned short),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:602:12: note: in expansion of macro 'FWrite' 602 | FWrite(x,sizeof(char),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_vread(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:658:12: note: in expansion of macro 'FRead' 658 | FRead(xi,sizeof(int),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:668:12: note: in expansion of macro 'FRead' 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__elem(i),double) } | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:677:12: note: in expansion of macro 'FRead' 677 | FRead(xf,sizeof(float),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | } | ~ 682 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 683 | break; | ~~~~~~ 684 | } | ~ 685 | | 686 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 689 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 691 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 692 | | 693 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:694:12: note: in expansion of macro 'FRead' 694 | FRead(xi,sizeof(unsigned short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | } | ~ 682 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 683 | break; | ~~~~~~ 684 | } | ~ 685 | | 686 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 689 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 691 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 692 | | 693 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (i=0;ielem(i) = double(xi[i]/sf +min); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 698 | } | ~ 699 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 700 | break; | ~~~~~~ 701 | } | ~ 702 | | 703 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 704 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 705 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 706 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 707 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 708 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 709 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 710 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:710:12: note: in expansion of macro 'FRead' 710 | FRead(xc,sizeof(char),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:614:15: warning: unused variable 's' [-Wunused-variable] 614 | void* s = (void*)(vp->vec()); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'Object** v_hist(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:1127:16: warning: unused variable 'high' [-Wunused-variable] 1127 | double high = start+step*size; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_indwhere(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:1755:16: warning: unused variable 'm' [-Wunused-variable] 1755 | int i, iarg, m=0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'v_medfltr(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:3206:13: warning: 'operator delete[](void*)' called on pointer returned from a mismatched allocation function [-Wmismatched-new-delete] 3206 | delete [] res; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:3191:33: note: returned from 'calloc' 3191 | double *res = (double *)calloc(n,(unsigned)sizeof(double)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'call_simplex(double*, int, IvocVect*, IvocVect*, char*, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:2694:17: warning: 'retval' may be used uninitialized in this function [-Wmaybe-uninitialized] 2694 | return (retval); | ^ [ 13%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp: In function 'void steer_x(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp:731:17: warning: unused variable 's' [-Wunused-variable] 731 | Symbol* s = hoc_spop(); | ^ [ 13%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp: In function 'void* cons(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp:139:1: warning: control reaches end of non-void function [-Wreturn-type] 139 | } | ^ [ 13%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp: In function 'int nrn_feround(int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp:37:13: warning: unused variable 'm' [-Wunused-variable] 37 | int m; | ^ [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/objcmd.cpp [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.cpp [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp: In member function 'virtual void OcBox::box_append(OcGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp:577:20: warning: unused variable 'wk' [-Wunused-variable] 577 | WidgetKit& wk = *WidgetKit::instance(); | ^~ [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbrowsr.cpp [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp: In member function 'virtual void OcDeck::box_append(OcGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp:293:20: warning: unused variable 'wk' [-Wunused-variable] 293 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp:294:20: warning: unused variable 'lk' [-Wunused-variable] 294 | LayoutKit& lk = *LayoutKit::instance(); | ^~ [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp: In function 'bool makePath(const string&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp:586:21: warning: comparison of integer expressions of different signedness: 'int' and 'const size_type' {aka 'const long unsigned int'} [-Wsign-compare] 586 | if (pos == std::string::npos) | ~~~~^~~~~~~~~~~~~~~~~~~~ [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:84:13: warning: 'void readmore()' defined but not used [-Wunused-function] 84 | static void readmore() { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:40:24: warning: 'filequeue' defined but not used [-Wunused-variable] 40 | static CopyStringList* filequeue; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:16:14: warning: 'help_pipe' defined but not used [-Wunused-variable] 16 | static FILE* help_pipe; | ^~~~~~~~~ [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oclist.cpp [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp: In member function 'virtual void OcFullMatrix::solv(IvocVect*, IvocVect*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp:290:43: warning: comparison of integer expressions of different signedness: 'u_int' {aka 'unsigned int'} and 'int' [-Wsign-compare] 290 | }else if (use_lu && lu_factor_->m == nrow()) { | ~~~~~~~~~~~~~~^~~~~~~~~ [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocnoiv1.cpp [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocobserv.cpp [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocpicker.cpp [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocpointer.cpp [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocptrvector.cpp [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/octimer.cpp [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In constructor 'PrintableWindowManager::PrintableWindowManager()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1206:15: warning: variable 'wp1' set but not used [-Wunused-but-set-variable] 1206 | Coord wp1; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1246:38: warning: unused variable 'mother' [-Wunused-variable] 1246 | Menu* mbar, *mprint, *mses, *mother; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PrintableWindowManager::reconfigured(PrintableWindow*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1642:15: warning: unused variable 'r' [-Wunused-variable] 1642 | Coord r = l + w->width_pw(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1644:15: warning: unused variable 't' [-Wunused-variable] 1644 | Coord t = b + w->height_pw(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PrintableWindowManager::reconfigured(JavaWindow*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1672:15: warning: unused variable 'r' [-Wunused-variable] 1672 | Coord r = l + w->w(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1674:15: warning: unused variable 't' [-Wunused-variable] 1674 | Coord t = b + w->h(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PWMImpl::common_print(ivPrinter*, bool, bool)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:2017:23: warning: unused variable 'sfac' [-Wunused-variable] 2017 | float sfac; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'PWMImpl::save_list(int, ScreenItem**, std::basic_ostream >&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:3228:50: warning: 'ocg' may be used uninitialized in this function [-Wmaybe-uninitialized] 3228 | ocg->save(o); | ~~~~~~~~~^~~ [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/rect.cpp [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/rubband.cpp [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp: In member function 'virtual void Scene::save_class(std::ostream&, const char*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp:870:14: warning: unused variable 'count' [-Wunused-variable] 870 | long count = views_->count(); | ^~~~~ [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp: In member function 'virtual void SpecView::execute()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:691:14: warning: unused variable 'bx' [-Wunused-variable] 691 | bool bx = var_pair_chooser("X size", x1, x2, v->canvas()->window()); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:692:14: warning: unused variable 'by' [-Wunused-variable] 692 | bool by = var_pair_chooser("Y size", y1, y2, v->canvas()->window()); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp: In member function 'void OcViewGlyph::viewmenu(ivGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:761:28: warning: unused variable 'wk' [-Wunused-variable] 761 | WidgetKit& wk = *WidgetKit::instance(); | ^~ [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp: In function 'Object** l_alias_list(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp:169:22: warning: unused variable 'buf' [-Wunused-variable] 169 | char buf[256]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp:167:13: warning: unused variable 'id' [-Wunused-variable] 167 | int id = (*po)->index; | ^~ [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp: In member function 'virtual void SymChooser::reread()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp:265:21: warning: unused variable 'fc' [-Wunused-variable] 265 | SymChooserImpl& fc = *impl_; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp: In member function 'void SymChooserImpl::accept_browser_index(int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp:627:13: warning: unused variable 'sym' [-Wunused-variable] 627 | Symbol* sym = dir->symbol(i); | ^~~ [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp: In function 'bool str_chooser(const char*, char*, ivWindow*, ivCoord, ivCoord)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp:191:20: warning: unused variable 'l' [-Wunused-variable] 191 | LayoutKit& l = *LayoutKit::instance(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp: In static member function 'static bool Graph::label_chooser(const char*, char*, GLabel*, ivCoord, ivCoord)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp:350:20: warning: unused variable 'l' [-Wunused-variable] 350 | LayoutKit& l = *LayoutKit::instance(); | ^ [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In function 'void set_format()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:1835:22: warning: unused variable 'len' [-Wunused-variable] 1835 | static Coord len; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'virtual void HocEditorForItem::val_inc(const ivEvent&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2213:15: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 2213 | if (i == strlen(buf)) { | ~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In constructor 'StepperMenu::StepperMenu()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2394:20: warning: unused variable 'k' [-Wunused-variable] 2394 | WidgetKit& k = *WidgetKit::instance(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'void HocStateButton::button_action()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2855:26: warning: unused variable 't' [-Wunused-variable] 2855 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2861:26: warning: unused variable 't' [-Wunused-variable] 2861 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'void HocStateMenuItem::button_action()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:3006:26: warning: unused variable 't' [-Wunused-variable] 3006 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:3012:26: warning: unused variable 't' [-Wunused-variable] 3012 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:1835:22: warning: 'len' defined but not used [-Wunused-variable] 1835 | static Coord len; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:887:13: warning: 'void saveMenuFile()' defined but not used [-Wunused-function] 887 | static void saveMenuFile() { | ^~~~~~~~~~~~ [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp: In member function 'virtual void XYView::transform(ivTransformer&, const ivAllocation&, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:478:26: warning: unused variable 'nx' [-Wunused-variable] 478 | const Allotment& nx = n.x_allotment(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:479:26: warning: unused variable 'ny' [-Wunused-variable] 479 | const Allotment& ny = n.y_allotment(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:480:17: warning: unused variable 'v' [-Wunused-variable] 480 | XYView* v = (XYView*)this; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp: In member function 'virtual void View::transform(ivTransformer&, const ivAllocation&, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:554:15: warning: unused variable 'sy' [-Wunused-variable] 554 | float sy = ay.span()/XYView::height(); | ^~ [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/field.cpp [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xdep.cpp [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbs.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbs.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbs.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'virtual void BBSImpl::execute(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:290:23: warning: unused variable 's' [-Wunused-variable] 290 | char* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:292:21: warning: unused variable 'i' [-Wunused-variable] 292 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'virtual bool BBSImpl::working(int&, double&, int&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:390:29: warning: unused variable 'wid' [-Wunused-variable] 390 | int wid = upkint(); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:404:7: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized] 404 | printf("working n_=%d: after %d try elapsed %g sec got result for %d id=%d x=%g\n", | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | n_, cnt, time()-t, working_id_, id, x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'BBS::take(char const*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:476:23: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized] 476 | printf("end take |%s| elapsed %g from %g\n", key, time()-t, t); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'double save_test_bin(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:629:22: warning: unused variable 'ss' [-Wunused-variable] 629 | BBSaveState* ss = (BBSaveState*)v; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:174: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'double restore_test_bin(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:899:61: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 899 | nrn_assert(fread(buf, sizeof(char), global_size, f) == global_size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:920:60: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 920 | nrn_assert(fread(buf, sizeof(char), sz, f) == sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void tqcallback(const TQItem*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1142:33: warning: unused variable 'dl' [-Wunused-variable] 1142 | DEList *dl=0, *dl1=0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1172:42: warning: unused variable 'tt' [-Wunused-variable] 1172 | int srcid, i; double ts, tt; PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::del_pp2de()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1360:17: warning: unused variable 'dl' [-Wunused-variable] 1360 | DEList* dl, *dl1; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'int BBSaveState::counts(int**, int**)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1460:58: warning: unused variable 'base' [-Wunused-variable] 1460 | NrnHashIterateKeyValue(Int2Int, base2spgid, int, base, int, spgid) { | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1460:69: warning: unused variable 'spgid' [-Wunused-variable] 1460 | NrnHashIterateKeyValue(Int2Int, base2spgid, int, base, int, spgid) { | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:90:31: note: in definition of macro 'NrnHashIterateKeyValue' 90 | Value value = (*p__).second; \ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::mech(Prop*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1796:32: warning: unused variable 'd' [-Wunused-variable] 1796 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1798:32: warning: unused variable 'd' [-Wunused-variable] 1798 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1810:40: warning: unused variable 'd' [-Wunused-variable] 1810 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1812:40: warning: unused variable 'd' [-Wunused-variable] 1812 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1818:40: warning: unused variable 'd' [-Wunused-variable] 1818 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1820:40: warning: unused variable 'd' [-Wunused-variable] 1820 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::netrecv_pp(Point_process*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1835:13: warning: unused variable 'type' [-Wunused-variable] 1835 | int type = pp->prop->type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void all2allv_int2(int*, int*, int*, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1965:13: warning: unused variable 'i' [-Wunused-variable] 1965 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void all2allv_dbl1(int*, int*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1990:13: warning: unused variable 'i' [-Wunused-variable] 1990 | int i, size; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void scatteritems()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2036:68: warning: unused variable 'gid' [-Wunused-variable] 2036 | NrnHashIterateKeyValue(Int2DblList, src2send, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2070:60: warning: unused variable 'gid' [-Wunused-variable] 2070 | NrnHashIterateKeyValue(Int2DblList, src2send, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2015:16: warning: unused variable 'gid' [-Wunused-variable] 2015 | int i, gid, host; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2016:18: warning: unused variable 'dl' [-Wunused-variable] 2016 | DblList* dl; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void construct_presyn_queue()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2194:48: warning: unused variable 't2' [-Wunused-variable] 2194 | double t2 = dl->item(j); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:13: warning: unused variable 'gid' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:35: warning: unused variable 'ts' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:39: warning: unused variable 'tt' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void bbss_queuecheck()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2464:70: warning: unused variable 'gid' [-Wunused-variable] 2464 | NrnHashIterateKeyValue(Int2DblList, queuecheck_gid2unc, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsdirect.cpp [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslocal.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:13, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslocal.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp: In member function 'virtual char* BBSLocal::upkpickle(size_t*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:89:19: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 89 | assert(*n == len); | ~~~^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hocassrt.h:19:28: note: in definition of macro 'assert' 19 | # define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslsrv.cpp: In member function 'void BBSLocalServer::post(const char*, MessageValue*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslsrv.cpp:320:31: warning: variable 'm' set but not used [-Wunused-but-set-variable] 320 | MessageList::iterator m = messages_->insert( | ^ [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv2.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv2.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbssrv2mpi.cpp: In member function 'void BBSDirectServer::post(const char*, bbsmpibuf*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbssrv2mpi.cpp:235:39: warning: variable 'm' set but not used [-Wunused-but-set-variable] 235 | MessageList::iterator m = messages_->insert( | ^ [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsrcli.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsrcli.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp: In member function 'virtual void BBSClient::take(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:233:13: warning: unused variable 'bufid' [-Wunused-variable] 233 | int bufid; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp: In member function 'virtual void BBSClient::start()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:326:15: warning: unused variable 'client' [-Wunused-variable] 326 | char* client = 0; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:327:13: warning: unused variable 'tid' [-Wunused-variable] 327 | int tid; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:328:13: warning: unused variable 'n' [-Wunused-variable] 328 | int n; | ^ [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbssrv.cpp [ 21%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bgpmeminfo.c [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cachevec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cachevec.cpp [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/classreg.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/classreg.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/classreg.cpp [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodeobj.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodeobj.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'double use_mxb(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:345:19: warning: unused variable 'd' [-Wunused-variable] 345 | NetCvode* d = (NetCvode*)v; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'double cache_efficient(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:358:19: warning: unused variable 'd' [-Wunused-variable] 358 | NetCvode* d = (NetCvode*)v; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'void Cvode::activate_maxstate(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:921:21: warning: unused variable 'i' [-Wunused-variable] 921 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'int Cvode::cvode_init(double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1055:13: warning: unused variable 'iter' [-Wunused-variable] 1055 | int iter; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'int Cvode::daspk_advance_tn()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1334:13: warning: unused variable 'flag' [-Wunused-variable] 1334 | int flag, err; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1335:16: warning: unused variable 'tin' [-Wunused-variable] 1335 | double tin; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* msolve_thread_part2(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1473:13: warning: unused variable 'i' [-Wunused-variable] 1473 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* f_thread_ms_part2(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1569:13: warning: unused variable 'i' [-Wunused-variable] 1569 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* f_thread_ms_part3(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1575:13: warning: unused variable 'i' [-Wunused-variable] 1575 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:689:14: warning: 'void* msetup_thread(NrnThread*)' declared 'static' but never defined [-Wunused-function] 689 | static void* msetup_thread(NrnThread*); | ^~~~~~~~~~~~~ [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodestb.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodestb.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp: In function 'void deliver_net_events(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:43:13: warning: unused variable 'i' [-Wunused-variable] 43 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:38:13: warning: 'void check_thresh(NrnThread*)' declared 'static' but never defined [-Wunused-function] 38 | static void check_thresh(NrnThread*); | ^~~~~~~~~~~~ [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvtrset.cpp [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cxprop.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'void read_temp1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:86:13: warning: unused variable 'nscan' [-Wunused-variable] 86 | int nscan, maxtype, imech, nmech, type, sz1, sz2, ntget, ith, nth, i, j, cnt, seq; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'void nrn_cache_prop_realloc()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:606:21: warning: unused variable 'j' [-Wunused-variable] 606 | int j, cnt = ml->nodecount; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:585:20: warning: unused variable 'type' [-Wunused-variable] 585 | int i, it, type; | ^~~~ [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/datapath.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/datapath.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/datapath.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/datapath.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'PathValue* HocDataPathImpl::found_v(void*, const char*, Symbol*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:265:13: warning: unused variable 'len' [-Wunused-variable] 265 | int len = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'void HocDataPathImpl::search_vectors()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:424:16: warning: unused variable 'cnt' [-Wunused-variable] 424 | int i, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'void HocDataPathImpl::search(Node*, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:483:13: warning: unused variable 'i' [-Wunused-variable] 483 | int i, cnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:483:16: warning: unused variable 'cnt' [-Wunused-variable] 483 | int i, cnt; | ^~~ [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/finithnd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/finithnd.cpp [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp: In constructor 'geometry3d_Cylinder::geometry3d_Cylinder(double, double, double, double, double, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:441:52: warning: 'geometry3d_Cylinder::cz' will be initialized after [-Wreorder] 441 | double r, rr, axisx, axisy, axisz, cx, cy, cz, h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:441:19: warning: 'double geometry3d_Cylinder::rr' [-Wreorder] 441 | double r, rr, axisx, axisy, axisz, cx, cy, cz, h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:444:1: warning: when initialized here [-Wreorder] 444 | geometry3d_Cylinder::geometry3d_Cylinder(double x0, double y0, double z0, | ^~~~~~~~~~~~~~~~~~~ [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/glinerec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp: In member function 'void GraphVector::record_install()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp:165:18: warning: unused variable 'gvr' [-Wunused-variable] 165 | GVectorRecord* gvr = new GVectorRecord(this); | ^~~ [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/hocmech.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp: In function 'void make_pointprocess()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp:311:21: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 311 | for (i=0; i < s2->s_varn; ++i) { | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp:252:14: warning: unused variable 'buf' [-Wunused-variable] 252 | char buf[256]; | ^~~ [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/impedanc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/impedanc.cpp [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/kschan.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/kschan.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_vres(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:292:17: warning: unused variable 'ks' [-Wunused-variable] 292 | KSChan* ks = (KSChan*)v; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_rseed(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:301:17: warning: unused variable 'ks' [-Wunused-variable] 301 | KSChan* ks = (KSChan*)v; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_pr(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:653:17: warning: unused variable 's' [-Wunused-variable] 653 | Symbol* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:655:16: warning: unused variable 'j' [-Wunused-variable] 655 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In constructor 'KSChan::KSChan(Object*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:874:13: warning: unused variable 'i' [-Wunused-variable] 874 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setname(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:990:46: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 990 | if (!is_point()) for (i=0; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setion(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1202:40: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1202 | for (i=2+io; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1240:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1240 | for (i=1 + io; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::free1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1270:29: warning: deleting object of polymorphic class type 'KSIv' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 1270 | if (iv_relation_) { delete iv_relation_; iv_relation_ = NULL; } | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setcond()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1289:29: warning: deleting object of polymorphic class type 'KSIv' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 1289 | if (iv_relation_) { delete iv_relation_; } | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::settype(KSTransition*, int, const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1443:14: warning: variable 'move' set but not used [-Wunused-but-set-variable] 1443 | bool move = true; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::ion_consist()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2249:18: warning: unused variable 'sec' [-Wunused-variable] 2249 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::state_consist(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2308:18: warning: unused variable 'sec' [-Wunused-variable] 2308 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'virtual void KSChan::cv_sc_update(int, Node**, double**, Datum**, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2910:16: warning: unused variable 'j' [-Wunused-variable] 2910 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2911:17: warning: unused variable 's' [-Wunused-variable] 2911 | double* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::usetable(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:3043:13: warning: unused variable 'i' [-Wunused-variable] 3043 | int i; | ^ In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2: In function 'strncpy', inlined from 'kst_ligand(void*)' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:633:10: /usr/include/bits/string_fortified.h:95:34: warning: 'strncpy' specified bound 20 equals destination size [-Wstringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/kssingle.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp: In member function 'void KSSingle::state(Node*, double*, Datum*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp:246:13: warning: unused variable 'i' [-Wunused-variable] 246 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp: In member function 'void KSSingle::cv_update(Node*, double*, Datum*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp:262:13: warning: unused variable 'i' [-Wunused-variable] 262 | int i; | ^ [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/linmod.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/linmod.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/linmod.cpp [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/linmod1.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/linmod1.cpp [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h: In constructor 'MatrixMap::MatrixMap(OcMatrix&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:63:18: warning: 'MatrixMap::ptree_' will be initialized after [-Wreorder] 63 | double** ptree_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:62:18: warning: 'double** MatrixMap::pm_' [-Wreorder] 62 | double** pm_; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:10:1: warning: when initialized here [-Wreorder] 10 | MatrixMap::MatrixMap(Matrix& mat) | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h: In constructor 'MatrixMap::MatrixMap(OcMatrix*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:63:18: warning: 'MatrixMap::ptree_' will be initialized after [-Wreorder] 63 | double** ptree_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:62:18: warning: 'double** MatrixMap::pm_' [-Wreorder] 62 | double** pm_; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:14:1: warning: when initialized here [-Wreorder] 14 | MatrixMap::MatrixMap(Matrix* mat) | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp: In member function 'void MatrixMap::alloc(int, int, Node**, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:50:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 50 | for (int k = 0; k < nonzero_i.size(); k++) { | ~~^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:41:13: warning: unused variable 'nrow' [-Wunused-variable] 41 | int nrow = m_.nrow(); | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:42:13: warning: unused variable 'ncol' [-Wunused-variable] 42 | int ncol = m_.ncol(); | ^~~~ [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/multisplit.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::multisplit_clear()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:523:29: warning: unused variable 'ms' [-Wunused-variable] 523 | MultiSplit* ms; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::prstruct()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1773:23: warning: unused variable 'nd' [-Wunused-variable] 1773 | Node* nd = ms->nd[0]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::multisplit_nocap_v_part3(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1956:16: warning: unused variable 'j' [-Wunused-variable] 1956 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In destructor 'virtual ReducedTree::~ReducedTree()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2454:13: warning: unused variable 'i' [-Wunused-variable] 2454 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitThread::bksub_backbone(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:19: warning: unused variable 'ip' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:23: warning: unused variable 'ip1' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:28: warning: unused variable 'ip2' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::pmat(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3291:12: warning: unused variable 'ip' [-Wunused-variable] 3291 | int it, i, ip, is; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::pmatf(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3321:12: warning: unused variable 'ip' [-Wunused-variable] 3321 | int it, i, ip, is; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'MultiSplitControl::multisplit(Section*, double, int, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:411:38: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized] 411 | hoc_execerror(s, secname(root->sec)); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp: In member function 'bool NrnProperty::more_var()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp:138:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 138 | if (npi_->iterator_ >= npi_->sym_->s_varn) { | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/netcvode.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In static member function 'static DiscreteEvent* PlayRecordEvent::savestate_read(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:341:24: warning: unused variable 'de' [-Wunused-variable] 341 | DiscreteEvent* de = nil; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::del_cv_memb_list(Cvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1438:13: warning: unused variable 'i' [-Wunused-variable] 1438 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::distribute_dinfo(int*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1500:13: warning: unused variable 'i' [-Wunused-variable] 1500 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'bool NetCvode::init_global()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1800:50: warning: unused variable 'z' [-Wunused-variable] 1800 | CvodeThreadData& z = cv.ctd_[0]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::init_events()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:2802:16: warning: unused variable 'fifodelay' [-Wunused-variable] 2802 | double fifodelay; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In static member function 'static DiscreteEvent* SelfEvent::savestate_read(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3267:45: warning: unused variable 'iml' [-Wunused-variable] 3267 | int ppindex, ncindex, moff, pptype, iml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3269:17: warning: unused variable 'obj' [-Wunused-variable] 3269 | Object* obj; | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'int NetCvode::pgvts_event(double&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3578:13: warning: unused variable 'rank' [-Wunused-variable] 3578 | int rank, op, err, init; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::re_init(double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3913:19: warning: unused variable 'k' [-Wunused-variable] 3913 | int i, j, k, l; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3913:22: warning: unused variable 'l' [-Wunused-variable] 3913 | int i, j, k, l; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCon* NetCvode::install_deliver(double*, Section*, Object*, Object*, double, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4485:13: warning: unused variable 'i' [-Wunused-variable] 4485 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'virtual void WatchCondition::pgvts_deliver(double, NetCvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5400:20: warning: unused variable 'nt' [-Wunused-variable] 5400 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'virtual void STECondition::pgvts_deliver(double, NetCvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5417:20: warning: unused variable 'nt' [-Wunused-variable] 5417 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In function 'void nrnthread_trajectory_values(int, int, void**, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5736:9: warning: unused variable 'i_trajec' [-Wunused-variable] 5736 | int i_trajec = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::deliver_net_events(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5831:20: warning: unused variable 'tt' [-Wunused-variable] 5831 | double tm, tt, tsav; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::vec_remove()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6198:19: warning: unused variable 'iv' [-Wunused-variable] 6198 | IvocVect* iv = vector_arg(1); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::playrec_setup()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6207:17: warning: unused variable 'px' [-Wunused-variable] 6207 | double* px; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'double NetCvode::state_magnitudes()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6378:25: warning: unused variable 'ms' [-Wunused-variable] 6378 | double* ms; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6346:13: warning: unused variable 'i' [-Wunused-variable] 6346 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::maxstate_analyse()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6441:23: warning: unused variable 'n' [-Wunused-variable] 6441 | int i, it, j, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::error_weights()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4236:35: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] 4236 | gcv_->states(vp + j); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::acor()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4265:35: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] 4265 | gcv_->states(vp + j); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::maxstate_analyse()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6460:43: warning: 'msi' may be used uninitialized in this function [-Wmaybe-uninitialized] 6460 | maxstate_analyze_1(it, *gcv_, msi, gcv_->ctd_[it]); | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/netpar.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/netpar.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrn_cleanup_presyn(PreSyn*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:964:17: warning: unused variable 'pss' [-Wunused-variable] 964 | PreSyn* pss; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrnmpi_gid_clear(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:980:17: warning: unused variable 'ps' [-Wunused-variable] 980 | PreSyn* ps, *psi; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrn_gidout_iter(PFIO)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1508:17: warning: unused variable 'ps' [-Wunused-variable] 1508 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'size_t nrncore_netpar_bytes()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1529:11: warning: unused variable 'ps' [-Wunused-variable] 1529 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrncore_netpar_cellgroups_helper(nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1580:11: warning: unused variable 'ps' [-Wunused-variable] 1580 | PreSyn* ps; | ^~ [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In constructor 'NonLinImpRep::NonLinImpRep()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:206:16: warning: unused variable 'j' [-Wunused-variable] 206 | int i, j, ieq, cnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:206:19: warning: unused variable 'ieq' [-Wunused-variable] 206 | int i, j, ieq, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'void NonLinImpRep::dsds()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:520:64: warning: unused variable 'nd' [-Wunused-variable] 520 | for (in = 0; in < ml->nodecount; ++in) { Node* nd = ml->nodelist[in]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'void NonLinImpRep::ode(int, Memb_list*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:557:13: warning: unused variable 'i' [-Wunused-variable] 557 | int i, nc; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:557:16: warning: variable 'nc' set but not used [-Wunused-but-set-variable] 557 | int i, nc; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'NonLinImpRep::gapsolve()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'jb' may be used uninitialized in this function [-Wmaybe-uninitialized] 619 | cmplx_spSolve(m_, rb-1, rx1-1, jb-1, jx1-1); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'rb' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'jx1' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'rx1' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:626:61: warning: 'jx' may be used uninitialized in this function [-Wmaybe-uninitialized] 626 | double err = fabs(rx1[i] - rx[i]) + fabs(jx1[i] - jx[i]); | ~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:626:38: warning: 'rx' may be used uninitialized in this function [-Wmaybe-uninitialized] 626 | double err = fabs(rx1[i] - rx[i]) + fabs(jx1[i] - jx[i]); | ~~~~^ [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:111: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnsection_mapping.h: In member function 'CellMapping* NrnMappingInfo::get_cell_mapping(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnsection_mapping.h:119:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 119 | for(int i = 0; i < mapping.size(); i++) { | ~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'size_t part1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:275:22: warning: unused variable 'tml' [-Wunused-variable] 275 | NrnThreadMembList* tml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void datumtransform(nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:730:16: warning: unused variable 'nt' [-Wunused-variable] 730 | NrnThread& nt = nrn_threads[ith]; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/tqueue.h:58, from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/netcvode.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:109: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void write_contiguous_art_data(double**, int, int, FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1081:14: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 1081 | assert(n == szitem); | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_2(int, int*&, double*&, double*&, double*&, double*&, double*&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1257:7: warning: unused variable 'n' [-Wunused-variable] 1257 | int n = nt.end; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_3(int, int, int*&, double*&, int*&, int*&, double*&, double*&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1359:14: warning: unused variable 'nt' [-Wunused-variable] 1359 | NrnThread& nt = nrn_threads[tid]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_corepointer(int, int&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1397:14: warning: unused variable 'nt' [-Wunused-variable] 1397 | NrnThread& nt = nrn_threads[tid]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void write_nrnthread_task(const char*, nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1696:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 1696 | for (int i = 0; i < iRecvVec.size(); ++i) | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int* datum2int(int, Memb_list*, NrnThread&, nrncore_CellGroup&, nrncore_DatumIndices&, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1712:12: warning: unused variable 'd' [-Wunused-variable] 1712 | Datum* d = ml->pdata[i]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void* get_coreneuron_handle()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1952:15: warning: ignoring return value of 'char* getcwd(char*, size_t)' declared with attribute 'warn_unused_result' [-Wunused-result] 1952 | getcwd(pwd, FILENAME_MAX); | ~~~~~~^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1075:13: warning: 'void write_contiguous_art_data(double**, int, int, FILE*)' defined but not used [-Wunused-function] 1075 | static void write_contiguous_art_data(double** data, int nitem, int szitem, FILE* f) { | ^~~~~~~~~~~~~~~~~~~~~~~~~ [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrndae.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h: In constructor 'NrnDAE::NrnDAE(OcMatrix*, IvocVect*, IvocVect*, int, Node**, IvocVect*, void (*)(void*), void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:186:14: warning: 'NrnDAE::yptmp_' will be initialized after [-Wreorder] 186 | Vect yptmp_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:183:14: warning: 'IvocVect NrnDAE::cyp_' [-Wreorder] 183 | Vect cyp_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:137:1: warning: when initialized here [-Wreorder] 137 | NrnDAE::NrnDAE(Matrix* cmat, Vect* const yvec, Vect* const y0, int nnode, | ^~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:183:14: warning: 'NrnDAE::cyp_' will be initialized after [-Wreorder] 183 | Vect cyp_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:139:12: warning: 'void (* NrnDAE::f_init_)(void*)' [-Wreorder] 139 | void (*f_init_)(void* data); | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:137:1: warning: when initialized here [-Wreorder] 137 | NrnDAE::NrnDAE(Matrix* cmat, Vect* const yvec, Vect* const y0, int nnode, | ^~~~~~ [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndaspk.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndaspk.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp: In member function 'int Daspk::init()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:233:13: warning: unused variable 'i' [-Wunused-variable] 233 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:64:12: warning: 'int msolve(IDAMem, N_Vector, N_Vector, N_Vector, N_Vector)' declared 'static' but never defined [-Wunused-function] 64 | static int msolve(IDAMem mem, N_Vector b, N_Vector ycur, N_Vector ypcur, | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:216:15: warning: 'double check(double, Daspk*)' defined but not used [-Wunused-function] 216 | static double check(double t, Daspk* ida) { | ^~~~~ [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp: In function 'void mech_menu(Prop*, double, int, const char*, MechSelector*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:291:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 291 | for (j=0; j < sym->s_varn; j++ ) { | ~~^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp: In function 'void point_menu(Object*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:459:47: warning: array subscript has type 'char' [-Wchar-subscripts] 459 | psym = pointsym[pnt_map[pp->prop->type]]; | ~~~~~~~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:476:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 476 | for (k=0; k < psym->s_varn; k++ ) { | ~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:488:44: warning: unused variable 'a' [-Wunused-variable] 488 | Arrayinfo* a = vsym->arayinfo; | ^ [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DNRNCMAKE -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -DUSE_LIBNRNPYTHON_MAJORMINOR=0 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnpy.cpp [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnrtime.cpp [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnste.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnste.cpp [ 27%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c: In function 'N_VNew_NrnSerialLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c:160:21: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] 160 | NV_DATA_S_LD(v) = data; /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c: In function 'N_VClone_NrnSerialLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c:364:21: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] 364 | NV_DATA_S_LD(v) = data; [ 27%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c: In function 'N_VNew_NrnThread': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:175:30: warning: unused variable 'content' [-Wunused-variable] 175 | N_VectorContent_NrnThread* content; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c: In function 'N_VWL2Norm_NrnThread': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:701:12: warning: variable 'N' set but not used [-Wunused-but-set-variable] 701 | long int N; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:781:14: warning: 'vminquotient' defined but not used [-Wunused-function] 781 | static void* vminquotient(NrnThread* nt) { | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:366:13: warning: 'pr' defined but not used [-Wunused-function] 366 | static void pr(N_Vector x) { N_VPrint_NrnThread(x); } | ^~ [ 27%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c: In function 'N_VNew_NrnThreadLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:175:32: warning: unused variable 'content' [-Wunused-variable] 175 | N_VectorContent_NrnThreadLD* content; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c: In function 'N_VWL2Norm_NrnThreadLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:700:12: warning: variable 'N' set but not used [-Wunused-but-set-variable] 700 | long int N; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:780:14: warning: 'vminquotient' defined but not used [-Wunused-function] 780 | static void* vminquotient(NrnThread* nt) { | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:365:13: warning: 'pr' defined but not used [-Wunused-function] 365 | static void pr(N_Vector x) { N_VPrint_NrnThreadLD(x); } | ^~ [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In function 'double multisplit(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:616:13: warning: unused variable 'reducedtree_host' [-Wunused-variable] 616 | int reducedtree_host = 0; | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In member function 'virtual void BBSImpl::return_args(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1304:13: warning: variable 'i' set but not used [-Wunused-but-set-variable] 1304 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1308:13: warning: unused variable 'wid' [-Wunused-variable] 1308 | int wid = upkint(); | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In function 'broadcast(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:864:38: warning: 's' may be used uninitialized in this function [-Wmaybe-uninitialized] 864 | nrnmpi_char_broadcast(s, cnt, srcid); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/occvode.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/occvode.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/occvode.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/occvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::new_no_cap_memb(CvodeThreadData&, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:277:20: warning: unused variable 'ml' [-Wunused-variable] 277 | Memb_list* ml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::fun_thread_ms_part1(double, double*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:715:26: warning: unused variable 'z' [-Wunused-variable] 715 | CvodeThreadData& z = ctd_[nt->id]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::before_after(BAMechList*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:764:16: warning: unused variable 'j' [-Wunused-variable] 764 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::acor(double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:989:20: warning: unused variable 'nt' [-Wunused-variable] 989 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'Cvode::new_no_cap_memb(CvodeThreadData&, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:298:35: warning: 'ncm' may be used uninitialized in this function [-Wmaybe-uninitialized] 298 | ncm->next = new CvMembList(); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~ [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ocjump.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocjump.cpp [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/partrans.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/partrans.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: In function 'void nrn_partrans_update_ptrs()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:373:16: warning: variable 'n' set but not used [-Wunused-but-set-variable] 373 | int i, n; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:692: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp: In function 'void rendezvous_rank_get(int*, int, int*&, int*&, int*&, int*&, int*&, int*&, int (*)(int))': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp:68:7: warning: unused variable 'rank' [-Wunused-variable] 68 | int rank = nrnmpi_myid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp: In function 'void have_to_want(int*, int, int*, int, int*&, int*&, int*&, int*&, int*&, int*&, int (*)(int))': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp:105:7: warning: unused variable 'rank' [-Wunused-variable] 105 | int rank = nrnmpi_myid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:329:13: warning: 'void check_pointers()' defined but not used [-Wunused-function] 329 | static void check_pointers() { | ^~~~~~~~~~~~~~ [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ppshape.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ppshape.cpp [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp: In function 'void pr_memb(int, Memb_list*, int*, NrnThread&, FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp:30:7: warning: unused variable 'psize' [-Wunused-variable] 30 | int psize = nrn_prop_dparam_size_[type]; | ^~~~~ [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/pysecname2sec.cpp [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/rotate3d.cpp [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/savstate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/savstate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'virtual void SaveState::read(OcFile*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:735:33: note: in expansion of macro 'ASSERTfread' 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:739:33: note: in expansion of macro 'ASSERTfread' 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:747:33: note: in expansion of macro 'ASSERTfread' 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:751:33: note: in expansion of macro 'ASSERTfread' 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:767:17: note: in expansion of macro 'ASSERTfread' 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'virtual void SaveState::write(OcFile*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:800:33: note: in expansion of macro 'ASSERTfwrite' 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:803:33: note: in expansion of macro 'ASSERTfwrite' 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:810:33: note: in expansion of macro 'ASSERTfwrite' 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:813:33: note: in expansion of macro 'ASSERTfwrite' 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:821:17: note: in expansion of macro 'ASSERTfwrite' 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::readnet(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:939:25: note: in expansion of macro 'ASSERTfread' 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:947:17: note: in expansion of macro 'ASSERTfread' 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:965:17: note: in expansion of macro 'ASSERTfread' 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::writenet(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1010:25: note: in expansion of macro 'ASSERTfwrite' 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1011 | } | ~ 1012 | } | ~ 1013 | fprintf(f, "%d\n", npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1014 | if (npss_) { | ~~~~~~~~~~~~ 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1015:17: note: in expansion of macro 'ASSERTfwrite' 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1011 | } | ~ 1012 | } | ~ 1013 | fprintf(f, "%d\n", npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1014 | if (npss_) { | ~~~~~~~~~~~~ 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1016 | } | ~ 1017 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 1018 | fprintf(f, "%d\n", n); | ~~~~~~~~~~~~~~~~~~~~~~ 1019 | if (n) { | ~~~~~~~~ 1020 | ASSERTfwrite((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1020:17: note: in expansion of macro 'ASSERTfwrite' 1020 | ASSERTfwrite((char*)tqs_->tdeliver, sizeof(double), n, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::allocnet()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1079:16: warning: unused variable 'n' [-Wunused-variable] 1079 | int i, n; | ^ [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/secbrows.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:8, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:18: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'OcSectionBrowser::OcSectionBrowser(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:131:32: warning: unused variable 'sec' [-Wunused-variable] 131 | ForAllSections(sec) //{ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:314:48: note: in definition of macro 'ForAllSections' 314 | ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'SectionBrowserImpl::SectionBrowserImpl()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:365:24: warning: unused variable 'sec' [-Wunused-variable] 365 | ForAllSections(sec) //{ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:314:48: note: in definition of macro 'ForAllSections' 314 | ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'SectionBrowser::SectionBrowser()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:392:20: warning: unused variable 'lk' [-Wunused-variable] 392 | LayoutKit& lk = *LayoutKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:393:20: warning: unused variable 'wk' [-Wunused-variable] 393 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In static member function 'static void SectionBrowser::make_section_browser()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:440:20: warning: unused variable 'wk' [-Wunused-variable] 440 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In static member function 'static void PointProcessBrowser::make_point_process_browser(OcList*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:500:20: warning: unused variable 'wk' [-Wunused-variable] 500 | WidgetKit& wk = *WidgetKit::instance(); | ^~ [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/shape.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/shape.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void OcShape::select_section(Section*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:743:18: warning: unused variable 's' [-Wunused-variable] 743 | Section* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:744:22: warning: unused variable 'c' [-Wunused-variable] 744 | const Color* c; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::observe(SectionList*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:832:23: warning: unused variable 'cnt' [-Wunused-variable] 832 | GlyphIndex i, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::transform3d(Rubberband*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1000:15: warning: unused variable 'x' [-Wunused-variable] 1000 | Coord x, y; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1000:18: warning: unused variable 'y' [-Wunused-variable] 1000 | Coord x, y; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::wholeplot(ivCoord&, ivCoord&, ivCoord&, ivCoord&) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1025:17: warning: unused variable 'j' [-Wunused-variable] 1025 | long i, j, n = sg_->count(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In destructor 'virtual ShapeSection::~ShapeSection()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1294:13: warning: unused variable 'n' [-Wunused-variable] 1294 | int n = sec_->npt3d -1; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::set_range_variable(Symbol*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1514:14: warning: variable 'any' set but not used [-Wunused-but-set-variable] 1514 | bool any = false; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::draw(ivCanvas*, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1554:15: warning: unused variable 'e' [-Wunused-variable] 1554 | float e = 1e-2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::fast_draw(ivCanvas*, ivCoord, ivCoord, bool) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1612:16: warning: variable 'a3dold' set but not used [-Wunused-but-set-variable] 1612 | double a3dold; // the arc length at i3d-1 | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'void ShapeSection::fastidious_draw(ivCanvas*, const ivColor*, int, float, float) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1698:15: warning: unused variable 'len' [-Wunused-variable] 1698 | float len, f1, f2, d, x1, x2, y1, y2, a, aa; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'ShapeSection::fast_draw(ivCanvas*, float, float, bool) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1631:54: warning: 'cv' may be used uninitialized in this function [-Wmaybe-uninitialized] 1631 | color = cv->get_color(*pvar_[iseg]); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'ShapeSection::arc_position(float, float) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:2003:51: warning: 'ic' may be used uninitialized in this function [-Wmaybe-uninitialized] 2003 | len = MyMath::norm2(x_[ic] - x_[ic+1], y_[ic] - y_[ic+1]); | ^~ [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp: In member function 'ivGlyph* ColorValue::make_glyph()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp:1108:20: warning: unused variable 'wk' [-Wunused-variable] 1108 | WidgetKit& wk = *WidgetKit::instance(); | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:13, from /builddir/build/BUILD/nrn-7.8.1/src/oc/classreg.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp: In member function 'Hinton::request(ivRequisition&) const': /builddir/build/BUILD/nrn-7.8.1/src/oc/hocassrt.h:19:22: warning: 'nonnull' argument 'this' compared to NULL [-Wnonnull-compare] 19 | # define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/singlech.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/singlech.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp: In member function 'RangeVarPlot::fill_pointers()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp:531:24: warning: 'sym' may be used uninitialized in this function [-Wmaybe-uninitialized] 531 | does_exist = nrn_exists(sym, node_exact(sec, hoc_ac_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/splitcell.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp: In function 'void splitcell_compute()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp:109:13: warning: unused variable 'i' [-Wunused-variable] 109 | int i; | ^ [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/symdir.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/symdir.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/symdir.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/symdir.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp: In constructor 'SymDirectory::SymDirectory(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp:172:13: warning: unused variable 'suffix' [-Wunused-variable] 172 | int suffix = '.'; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp: In member function 'void SymDirectoryImpl::load_section()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp:549:13: warning: unused variable 'n' [-Wunused-variable] 549 | int n = sec->nnode; | ^ [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/tqueue.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp:391, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:133, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c: In function 'TQItem* sptq_spenq(TQItem*, SPTREE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c:104:18: warning: unused variable 'Sct' [-Wunused-variable] 104 | register int Sct; /* Strcmp value */ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c: In function 'TQItem* sptq_spenqprior(TQItem*, SPTREE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c:329:18: warning: unused variable 'Sct' [-Wunused-variable] 329 | register int Sct; /* Strcmp value */ | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:133, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp:56:13: warning: 'void chk(TQItem*, int)' defined but not used [-Wunused-function] 56 | static void chk(TQItem* b, int level) { | ^~~ [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/vrecord.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/vrecord.cpp [ 31%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'nrn_rootnode_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:1654:18: warning: unused variable 'nde' [-Wunused-variable] 1654 | Extnode* nde; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'ismembrane': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:2254:15: warning: unused variable 'p' [-Wunused-variable] 2254 | Prop *p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'section_exists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:2466:21: warning: unused variable 'cp' [-Wunused-variable] 2466 | char *str, *cp, buf[100]; | ^~ [ 31%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/capac.c [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c: In function 'activclamp_lhs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c:180:16: warning: unused variable 'v' [-Wunused-variable] 180 | double v; | ^ [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_pop_defer': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:237:17: warning: unused variable 'obj' [-Wunused-variable] 237 | Object* obj; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'frameobj_clean': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:273:16: warning: unused variable 'narg' [-Wunused-variable] 273 | int i, narg; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_Argtype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1509:13: warning: unused variable 'narg' [-Wunused-variable] 1509 | int narg, iarg, type, itype=0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_autoobject': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1760:18: warning: unused variable 'obp' [-Wunused-variable] 1760 | Object **obp; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1758:13: warning: unused variable 'i' [-Wunused-variable] 1758 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_delete_symbol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:2507:14: warning: unused variable 'sp' [-Wunused-variable] 2507 | * sp; | ^~ [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:25:28: warning: missing braces around initializer [-Wmissing-braces] 25 | static DoubScal scdoub[] = { /* just a template*/ | ^ 26 | "ci0_na_ion", 0, | { } 27 | "co0_na_ion", 0, | { } 28 | 0, 0 | { 29 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'ion_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:521:16: warning: unused variable 'vnode' [-Wunused-variable] 521 | Node** vnode = ml->nodelist; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'ion_init': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:543:16: warning: unused variable 'vnode' [-Wunused-variable] 543 | Node** vnode = ml->nodelist; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'second_order_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:605:13: warning: unused variable 'j' [-Wunused-variable] 605 | int j, i, i2; | ^ [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:26:33: warning: missing braces around initializer [-Wmissing-braces] 26 | static HocParmLimits limits[] = { | ^ 27 | "xraxial", 1e-9, 1e15, | { { }} 28 | "xg", 0., 1e15, | { { }} 29 | "xc", 0., 1e15, | { { }} 30 | 0,0.,0. | { { 31 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:33:31: warning: missing braces around initializer [-Wmissing-braces] 33 | static HocParmUnits units[] = { | ^ 34 | "xraxial", "MOhm/cm", | { } 35 | "xg", "S/cm2", | { } 36 | "xc", "uF/cm2", | { } 37 | "e_extracellular", "mV", | { } 38 | "vext", "mV", | { } 39 | "i_membrane", "mA/cm2", | { } 40 | 0,0 | { 41 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'nrn_update_2d': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:94:16: warning: variable 'cfac' set but not used [-Wunused-but-set-variable] 94 | double cfac; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:90:20: warning: unused variable 'secondorder' [-Wunused-variable] 90 | extern int secondorder; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'extcell_node_create': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:197:13: warning: unused variable 'i' [-Wunused-variable] 197 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'extcell_2d_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:240:15: warning: unused variable 'p' [-Wunused-variable] 240 | Prop* p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:239:18: warning: unused variable 'nde' [-Wunused-variable] 239 | Extnode *nde; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:238:15: warning: unused variable 'nd' [-Wunused-variable] 238 | Node *nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:237:16: warning: unused variable 'j' [-Wunused-variable] 237 | int i, j; | ^ [ 33%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_daspk_init_step': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:284:13: warning: unused variable 'i' [-Wunused-variable] 284 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_fixed_step': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:301:13: warning: unused variable 'i' [-Wunused-variable] 301 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'fcurrent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:607:13: warning: unused variable 'i' [-Wunused-variable] 607 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_ba': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:1015:21: warning: unused variable 'type' [-Wunused-variable] 1015 | int type = tbl->bam->type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_finitialize': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:783:9: warning: '_nt' is used uninitialized [-Wuninitialized] 783 | nrn_random_play(_nt); | ^~~~~~~~~~~~~~~~~~~~ [ 33%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fstim.c [ 33%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c: In function 'fit_praxis': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c:101:32: warning: variable 'nvarsav' set but not used [-Wunused-but-set-variable] 101 | long int printmodesav, nvarsav; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c: In function 'efun': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c:279:13: warning: unused variable 'i' [-Wunused-variable] 279 | int i; | ^ [ 33%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocusr.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hocusr.c:9, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocusr.c:6: /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:32:30: warning: missing braces around initializer [-Wmissing-braces] 32 | static VoidFunc function[] = { | ^ 33 | 34 | "node_data", node_data, | { } 35 | "disconnect", disconnect, | { } 36 | "batch_run", batch_run, | { } 37 | "batch_save", batch_save, | { } 38 | "pt3dclear", pt3dclear, | { } 39 | "pt3dadd", pt3dadd, | { } 40 | "n3d", n3d, | { } 41 | "x3d", x3d, | { } 42 | "y3d", y3d, | { } 43 | "z3d", z3d, | { } 44 | "arc3d", arc3d, | { } 45 | "diam3d", diam3d, | { } 46 | "pt3dinsert", pt3dinsert, | { } 47 | "pt3dremove", pt3dremove, | { } 48 | "pt3dchange", pt3dchange, | { } 49 | "define_shape", define_shape, | { } 50 | "pt3dconst", pt3dconst, | { } 51 | "pt3dstyle", pt3dstyle, | { } 52 | "spine3d", spine3d, | { } 53 | "setSpineArea", setSpineArea, | { } 54 | "getSpineArea", getSpineArea, | { } 55 | "area", area, | { } 56 | "ri", ri, | { } 57 | "initnrn", initnrn, | { } 58 | "topology", nrnhoc_topology, | { } 59 | "fadvance", fadvance, | { } 60 | "distance", distance, | { } 61 | "finitialize", finitialize, | { } 62 | "fstim", fstim, | { } 63 | "fstimi", fstimi, | { } 64 | "ion_style", ion_style, | { } 65 | "ion_register", ion_register, | { } 66 | "ion_charge", ion_charge, | { } 67 | "nernst", nernst, | { } 68 | "ghk", ghk, | { } 69 | "section_owner", section_owner, | { } 70 | "make_mechanism", make_mechanism, | { } 71 | "make_pointprocess", make_pointprocess, | { } 72 | "nrnpython", nrnpython, | { } 73 | "fsyn", fsyn, | { } 74 | "fsyng", fsyng, | { } 75 | "fsyni", fsyni, | { } 76 | "fclamp", fclamp, | { } 77 | "fclampi", fclampi, | { } 78 | "fclampv", fclampv, | { } 79 | "prstim", prstim, | { } 80 | "fcurrent", fcurrent, | { } 81 | "fmatrix", fmatrix, | { } 82 | "frecord_init", frecord_init, | { } 83 | "issection", issection, | { } 84 | "ismembrane", ismembrane, | { } 85 | "sectionname", sectionname, | { } 86 | "psection", psection, | { } 87 | "pop_section", pop_section, | { } 88 | "push_section", push_section, | { } 89 | "section_exists", section_exists, | { } 90 | "delete_section", delete_section, | { } 91 | "fit_praxis", fit_praxis, | { } 92 | "attr_praxis", attr_praxis, | { } 93 | "pval_praxis", pval_praxis, | { } 94 | "stop_praxis", stop_praxis, | { } 95 | "keep_nseg_parm", keep_nseg_parm, | { } 96 | "nrnallsectionmenu", nrnallsectionmenu, | { } 97 | "nrnallpointmenu", nrnallpointmenu, | { } 98 | "nrnsecmenu", nrnsecmenu, | { } 99 | "nrnglobalmechmenu", nrnglobalmechmenu, | { } 100 | "nrnmechmenu", nrnmechmenu, | { } 101 | "nrnpointmenu", nrnpointmenu, | { } 102 | "this_section", this_section, | { } 103 | "this_node", this_node, | { } 104 | "parent_section", parent_section, | { } 105 | "parent_node", parent_node, | { } 106 | "parent_connection", parent_connection, | { } 107 | "section_orientation", section_orientation, | { } 108 | 0, 0 | { 109 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:114:13: warning: missing braces around initializer [-Wmissing-braces] 114 | } scint[] = { | ^ 115 | 116 | "secondorder", &secondorder, | { } 117 | "diam_changed", &diam_changed, | { } 118 | "nrn_shape_changed_", &nrn_shape_changed_, | { } 119 | "nrn_netrec_state_adjust", &nrn_netrec_state_adjust, | { } 120 | "nrn_sparse_partrans", &nrn_sparse_partrans, | { } 121 | "stoprun", &stoprun, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:129:12: warning: missing braces around initializer [-Wmissing-braces] 129 | } vint[] = { | ^ 130 | 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:137:15: warning: missing braces around initializer [-Wmissing-braces] 137 | } scfloat[] = { | ^ 138 | 139 | 0, 0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:146:14: warning: missing braces around initializer [-Wmissing-braces] 146 | } vfloat[] = { | ^ 147 | 148 | 0,0,0 | { 149 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:152:21: warning: missing braces around initializer [-Wmissing-braces] 152 | DoubScal scdoub[] = { | ^ 153 | 154 | "clamp_resist", &clamp_resist, | { } 155 | "celsius", &celsius, | { } 156 | 0,0 | { 157 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:160:19: warning: missing braces around initializer [-Wmissing-braces] 160 | DoubVec vdoub[] = { | ^ 161 | 162 | 0, 0, 0 | { 163 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:170:14: warning: missing braces around initializer [-Wmissing-braces] 170 | } ardoub[] = { | ^ 171 | 172 | 0, 0, 0, 0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc/hocusr.h:181:15: warning: missing braces around initializer [-Wmissing-braces] 181 | } thredim[] = { | ^ 182 | 183 | 0, 0, 0, 0, 0 | { 184 | }; | } [ 33%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_init.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_init.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:34:16: warning: missing braces around initializer [-Wmissing-braces] 34 | } keywords[] = { | ^ 35 | "proc", parsePROC, | { } 36 | "func", FUNC, | { } 37 | "obfunc", HOCOBJFUNC, | { } 38 | "return", RETURN, | { } 39 | "break", BREAK, | { } 40 | "continue", CONTINUE, | { } 41 | "stop", STOPSTMT, | { } 42 | "if", IF, | { } 43 | "else", ELSE, | { } 44 | "while", WHILE, | { } 45 | "for", FOR, | { } 46 | "print", PRINT, | { } 47 | "delete", parseDELETE, | { } 48 | "read", READ, | { } 49 | "debug", DEBUG, | { } 50 | "double", parseDOUBLE, | { } 51 | "em", EDIT, | { } 52 | "depvar", DEPENDENT, | { } 53 | "eqn", EQUATION, | { } 54 | "local", LOCAL, | { } 55 | "localobj", LOCALOBJ, | { } 56 | "strdef", STRDEF, | { } 57 | "parallel", PARALLEL, | { } 58 | "help", HELP, | { } 59 | "iterator", ITERKEYWORD, | { } 60 | "iterator_statement", ITERSTMT, | { } 61 | #if CABLE 62 | "create", SECTIONKEYWORD, | { } 63 | "connect", CONNECTKEYWORD, | { } 64 | "setpointer", SETPOINTERKEYWORD, | { } 65 | "access", ACCESSKEYWORD, | { } 66 | "insert", INSERTKEYWORD, | { } 67 | "uninsert", UNINSERTKEYWORD, | { } 68 | "forall", FORALL, | { } 69 | "ifsec", IFSEC, | { } 70 | "forsec", FORSEC, | { } ...... 73 | "begintemplate", BEGINTEMPLATE, | { } 74 | "endtemplate", ENDTEMPLATE, | { } 75 | "objectvar", OBJVARDECL, | { } 76 | "objref", OBJVARDECL, | { } 77 | "public", PUBLICDECL, | { } 78 | "external", EXTERNALDECL, | { } 79 | "new", NEW, | { } 80 | #endif 81 | 0, 0 | { 82 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:86:14: warning: missing braces around initializer [-Wmissing-braces] 86 | } consts[] = { | ^ 87 | "PI", 3.14159265358979323846, | { } 88 | "E", 2.71828182845904523536, | { } 89 | "GAMMA",0.57721566490153286060, /* Euler */ | { } 90 | "DEG", 57.29577951308232087680, /* deg/radian */ | { } 91 | "PHI", 1.61803398874989484820, /* golden ratio */ | { } 92 | #if defined(LegacyFR) && LegacyFR == 1 93 | "FARADAY", 96485.309, /*coulombs/mole*/ | { } 94 | "R", 8.31441, /*molar gas constant, joules/mole/deg-K*/ | { } ...... 101 | 0, 0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:107:16: warning: missing braces around initializer [-Wmissing-braces] 107 | } builtins[] = { | ^ 108 | "sin", sin, | { } 109 | "cos", cos, | { } 110 | "atan", atan, | { } 111 | "tanh", tanh, | { } 112 | "log", Log, /* checks argument */ | { } 113 | "log10",Log10, /* checks argument */ | { } 114 | "exp", hoc1_Exp, /* checks argument */ | { } 115 | "sqrt", Sqrt, /* checks argument */ | { } 116 | "int", integer, | { } ...... 122 | "abs", fabs, | { } 123 | "erf", erf, | { } 124 | "erfc", erfc, | { } 125 | #endif 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:131:17: warning: missing braces around initializer [-Wmissing-braces] 131 | } fun_bltin[] = { | ^ 132 | "atan2", hoc_atan2, | { } 133 | "system", hoc_System, | { } 134 | "prmat", hoc_Prmat, | { } 135 | "solve", hoc_solve, | { } 136 | "eqinit", hoc_eqinit, | { } 137 | "plt", hoc_Plt, | { } 138 | "axis", hoc_axis, | { } 139 | "plot", hoc_Plot, | { } 140 | "plotx", hoc_plotx, | { } 141 | "ploty", hoc_ploty, | { } 142 | "regraph", hoc_regraph, | { } 143 | "symbols", hoc_symbols, | { } 144 | "printf", hoc_PRintf, | { } 145 | "xred", hoc_Xred, | { } 146 | "sred", hoc_Sred, | { } 147 | "ropen", hoc_ropen, | { } 148 | "wopen", hoc_wopen, | { } 149 | "xopen", hoc_xopen, | { } 150 | "hoc_stdout", hoc_stdout, | { } 151 | "chdir", hoc_Chdir, | { } 152 | "fprint", hoc_Fprint, | { } 153 | "fscan", hoc_Fscan, | { } 154 | "sscanf", hoc_sscanf, | { } 155 | "sprint", hoc_Sprint, | { } 156 | "graph", hoc_Graph, | { } 157 | "graphmode", hoc_Graphmode, | { } 158 | "fmenu", hoc_fmenu, | { } 159 | "lw", hoc_Lw, | { } 160 | "getstr", hoc_Getstr, | { } 161 | "strcmp", hoc_Strcmp, | { } 162 | "setcolor", hoc_Setcolor, | { } 163 | "startsw", hoc_startsw, | { } 164 | "stopsw", hoc_stopsw, | { } 165 | "object_id", hoc_object_id, | { } 166 | "allobjectvars", hoc_allobjectvars, | { } 167 | "allobjects", hoc_allobjects, | { } 168 | "xpanel", hoc_xpanel, | { } 169 | "xbutton", hoc_xbutton, | { } 170 | "xcheckbox", hoc_xcheckbox, | { } 171 | "xstatebutton", hoc_xstatebutton, | { } 172 | "xlabel", hoc_xlabel, | { } 173 | "xmenu", hoc_xmenu, | { } 174 | "xvalue", hoc_xvalue, | { } 175 | "xpvalue", hoc_xpvalue, | { } 176 | "xradiobutton", hoc_xradiobutton, | { } 177 | "xfixedvalue", hoc_xfixedvalue, | { } 178 | "xvarlabel", hoc_xvarlabel, | { } 179 | "xslider", hoc_xslider, | { } 180 | "boolean_dialog", hoc_boolean_dialog, | { } 181 | "continue_dialog", hoc_continue_dialog, | { } 182 | "string_dialog", hoc_string_dialog, | { } 183 | "doEvents", hoc_single_event_run, | { } 184 | "doNotify", hoc_notify_iv, | { } 185 | "nrniv_bind_thread", nrniv_bind_thread, | { } 186 | "ivoc_style", ivoc_style, | { } 187 | "numarg", hoc_Numarg, | { } 188 | "argtype", hoc_Argtype, | { } 189 | "hoc_pointer_", hoc_pointer, /* for internal use */ | { } 190 | "nrn_mallinfo", hoc_mallinfo, | { } 191 | "execute", hoc_exec_cmd, | { } 192 | "execute1", hoc_execute1, | { } 193 | "load_proc", hoc_load_proc, | { } 194 | "load_func", hoc_load_func, | { } 195 | "load_template", hoc_load_template, | { } 196 | "load_file", hoc_load_file, | { } 197 | "load_java", hoc_load_java, | { } 198 | "unix_mac_pc", hoc_unix_mac_pc, | { } 199 | "show_winio", hoc_show_winio, | { } 200 | "nrn_load_dll", hoc_nrn_load_dll, | { } 201 | "machine_name", hoc_machine_name, | { } 202 | "saveaudit", hoc_Saveaudit, | { } 203 | "retrieveaudit", hoc_Retrieveaudit, | { } 204 | "coredump_on_error", hoc_coredump_on_error, | { } 205 | "checkpoint", hoc_checkpoint, | { } 206 | "quit", hoc_quit, | { } 207 | "object_push", hoc_object_push, | { } 208 | "object_pop", hoc_object_pop, | { } 209 | "pwman_place", hoc_pwman_place, | { } 210 | "save_session", hoc_save_session, | { } 211 | "print_session", hoc_print_session, | { } 212 | "show_errmess_always", hoc_show_errmess_always, | { } 213 | "execerror", hoc_Execerror, | { } 214 | "variable_domain", hoc_Symbol_limits, | { } 215 | "name_declared", hoc_name_declared, | { } 216 | "use_mcell_ran4", hoc_usemcran4, | { } 217 | "mcell_ran4", hoc_mcran4, | { } 218 | "mcell_ran4_init", hoc_mcran4init, | { } 219 | "nrn_feenableexcept", nrn_feenableexcept, | { } 220 | "nrnmpi_init", hoc_nrnmpi_init, | { } ...... 232 | 0, 0 | { 233 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:238:20: warning: missing braces around initializer [-Wmissing-braces] 238 | } strfun_bltin[] = { | ^ 239 | "secname", hoc_secname, | { } 240 | "units", hoc_Symbol_units, | { } 241 | "neuronhome", hoc_neuronhome, | { } 242 | "getcwd", hoc_getcwd, | { } 243 | "nrnversion", hoc_nrnversion, | { } 244 | 0, 0 | { 245 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:250:20: warning: missing braces around initializer [-Wmissing-braces] 250 | } objfun_bltin[] = { | ^ 251 | "object_pushed", hoc_object_pushed, | { } 252 | 0, 0 | { 253 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c: In function 'hoc_show_winio': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:355:9: warning: variable 'b' set but not used [-Wunused-but-set-variable] 355 | int b; | ^ [ 34%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_newobj': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:612:25: warning: unused variable 'o' [-Wunused-variable] 612 | Object* o = hoc_obj_look_inside_stack(narg); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:594:16: warning: unused variable 'total' [-Wunused-variable] 594 | int i, total; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:594:13: warning: unused variable 'i' [-Wunused-variable] 594 | int i, total; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:593:23: warning: unused variable 's' [-Wunused-variable] 593 | Symbol *sym, *s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:592:21: warning: unused variable 'obd' [-Wunused-variable] 592 | Objectdata *obd; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_cmp_otype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:804:13: warning: variable 'type' set but not used [-Wunused-but-set-variable] 804 | int type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_known_type': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:809:13: warning: variable 'type' set but not used [-Wunused-but-set-variable] 809 | int type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_name2obj': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:881:14: warning: unused variable 'buf' [-Wunused-variable] 881 | char buf[200]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_ob_pointer': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1275:17: warning: unused variable 'sym' [-Wunused-variable] 1275 | Symbol* sym; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'java2nrn_class': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1563:48: warning: unused variable 'buf' [-Wunused-variable] 1563 | char mname[256], signature[256], *cn, *buf; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1676:56: warning: '%s' directive writing up to 255 bytes into a region of size between 253 and 255 [-Wformat-overflow=] 1676 | sprintf(mname + strlen(mname), "%ld%s", | ^~~~~~~ 1677 | strlen(signature), signature); | ~~~~~~~~~ In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/oc/classreg.h:3, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:3, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c:6: /usr/include/bits/stdio2.h:38:10: note: '__sprintf_chk' output between 2 and 259 bytes into a destination of size 256 38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ [ 34%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:22: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabvars.h:8:15: warning: missing braces around initializer [-Wmissing-braces] 8 | } usrprop[] = { | ^ 9 | "nseg", 0, 0, | { } 10 | "L", 1, 2, | { } 11 | "rallbranch", 1, 4, | { } 12 | "Ra", 1, 7, | { } 13 | 0, 0, 0 | { 14 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:109:43: warning: missing braces around initializer [-Wmissing-braces] 109 | static HocParmLimits _hoc_parm_limits[] = { | ^ 110 | "Ra", 1e-6, 1e9, | { { }} 111 | "L", 1e-4, 1e20, | { { }} 112 | "diam", 1e-9, 1e9, | { { }} 113 | "cm", 0., 1e9, | { { }} 114 | "rallbranch", 1., 1e9, | { { }} 115 | "nseg", 1., 1e9, | { { }} 116 | "celsius", -273., 1e6, | { { }} 117 | "dt", 1e-9, 1e15, | { { }} 118 | 0, 0., 0. | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:121:41: warning: missing braces around initializer [-Wmissing-braces] 121 | static HocParmUnits _hoc_parm_units[] = { | ^ 122 | "Ra", "ohm-cm", | { } 123 | "L", "um", | { } 124 | "diam", "um", | { } 125 | "cm", "uF/cm2", | { } 126 | "celsius", "degC", | { } 127 | "dt", "ms", | { } 128 | "t", "ms", | { } 129 | "v", "mV", | { } 130 | "i_cap", "mA/cm2", | { } 131 | 0, 0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:287:28: warning: missing braces around initializer [-Wmissing-braces] 287 | static DoubScal scdoub[] = { | ^ 288 | "t", &t, | { } 289 | "dt", &dt, | { } 290 | 0,0 | { 291 | }; | } [ 34%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'longdifus_diamchange': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:46: warning: variable 'vnodecount' set but not used [-Wunused-but-set-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:31: warning: unused variable 'index' [-Wunused-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:28: warning: unused variable 'j' [-Wunused-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'longdifusalloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:192:19: warning: unused variable 'qsec' [-Wunused-variable] 192 | hoc_Item* qsec; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:191:15: warning: unused variable 'nd' [-Wunused-variable] 191 | Node* nd, *pnd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:31: warning: unused variable 'index' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:23: warning: unused variable 'mpi' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:19: warning: unused variable 'mi' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'stagger': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:369:21: warning: unused variable 'mi' [-Wunused-variable] 369 | int mi = pld->mindex[i]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:329:31: warning: unused variable 'dx' [-Wunused-variable] 329 | double dc, vol, dfdi, dx; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:329:20: warning: unused variable 'vol' [-Wunused-variable] 329 | double dc, vol, dfdi, dx; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:328:19: warning: variable 'di' set but not used [-Wunused-but-set-variable] 328 | int i, n, di; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'ode': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:401:20: warning: unused variable 'vol' [-Wunused-variable] 401 | double dc, vol, dfdi; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:459:20: warning: unused variable 'vol' [-Wunused-variable] 459 | double dc, vol, dfdi; | ^~~ [ 34%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/method3.c [ 34%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnnemo.c [ 35%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrntimeout.c [ 35%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c: In function 'nrn_version': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:54:12: warning: unused variable 'size' [-Wunused-variable] 54 | int j, size; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:29:7: warning: unused variable 'b' [-Wunused-variable] 29 | int b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:28:9: warning: unused variable 'cp' [-Wunused-variable] 28 | char *cp; | ^~ [ 35%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c: In function 'pas_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c:31:17: warning: unused variable 'vpdata' [-Wunused-variable] 31 | Datum **vpdata = ml->pdata; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c: In function 'pas_jacob': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c:45:17: warning: unused variable 'vpdata' [-Wunused-variable] 45 | Datum **vpdata = ml->pdata; | ^~~~~~ [ 35%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/point.c [ 35%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/psection.c [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c: In function 'wholetree': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:31: warning: unused variable 'last' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:23: warning: unused variable 'first' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:19: warning: unused variable 'j' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:15: warning: unused variable 'i' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:123:28: warning: unused variable 'ch' [-Wunused-variable] 123 | Section* s, *sec, *ch; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:254:32: warning: missing braces around initializer [-Wmissing-braces] 254 | static Member_func members[] = { | ^ 255 | "append", append, | { } 256 | "remove", seclist_remove, | { } 257 | "wholetree", wholetree, | { } 258 | "subtree", subtree, | { } 259 | "children", children, | { } 260 | "unique", unique, | { } 261 | "printnames", printnames, | { } 262 | "contains", contains, | { } 263 | "allroots", allroots, | { } 264 | 0,0 | { 265 | }; | } [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_rename': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:81:24: warning: unused variable 'hoc_thisobject' [-Wunused-variable] 81 | extern Object* hoc_thisobject, **hoc_objgetarg(); | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_nchild': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:230:13: warning: unused variable 'n' [-Wunused-variable] 230 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_has_parent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:236:13: warning: unused variable 'n' [-Wunused-variable] 236 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_has_trueparent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:246:13: warning: unused variable 'n' [-Wunused-variable] 246 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_exists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:256:13: warning: unused variable 'n' [-Wunused-variable] 256 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:275:32: warning: missing braces around initializer [-Wmissing-braces] 275 | static Member_func members[] = { | ^ 276 | "sec", s_rename, /* will actually become a SECTIONREF below */ | { } 277 | "parent", s_rename, | { } 278 | "trueparent", s_rename, | { } 279 | "root", s_rename, | { } 280 | "child", s_rename, | { } 281 | "nchild", s_nchild, | { } 282 | "has_parent", s_has_parent, | { } 283 | "has_trueparent", s_has_trueparent, | { } 284 | "exists", s_exists, | { } 285 | "rename", s_rename, | { } 286 | "unname", s_unname, | { } 287 | "is_cas", s_cas, | { } 288 | 0, 0 | { 289 | }; | } [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'node_destruct': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:648:15: warning: unused variable 'nd' [-Wunused-variable] 648 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'node_realloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:724:29: warning: unused variable 'i' [-Wunused-variable] 724 | int n1, n2, i1, i2, i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:710:14: warning: 'node_interp' defined but not used [-Wunused-function] 710 | static Node* node_interp(Node* nd1, Node* nd2, double frac) | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'distance': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:271:21: warning: 'my_origin_node' may be used uninitialized in this function [-Wmaybe-uninitialized] 271 | d = topol_distance(my_origin_sec, my_origin_node, sec, node, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | &sec, &node ); | ~~~~~~~~~~~~~ [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/synapse.c [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_lhs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:481:24: warning: variable 'neqn' set but not used [-Wunused-but-set-variable] 481 | int i, neqn; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:481:21: warning: unused variable 'i' [-Wunused-variable] 481 | int i, neqn; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'connection_coef': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:816:15: warning: unused variable 'p' [-Wunused-variable] 816 | Prop *p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:32: warning: unused variable 'ra' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:20: warning: unused variable 'diam' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:16: warning: unused variable 'dx' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'pt3dinsert': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1118:13: warning: unused variable 'i' [-Wunused-variable] 1118 | int i, n, i0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'pt3dremove': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1169:13: warning: unused variable 'i' [-Wunused-variable] 1169 | int i, i0, n; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'setaffinity': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:288:13: warning: unused variable 'mask' [-Wunused-variable] 288 | int mask; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'reorder_secorder': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:879:26: warning: unused variable 'i' [-Wunused-variable] 879 | int order, isec, i, j, inode; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'nrn_how_many_processors': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:1288:13: warning: unused variable 'i' [-Wunused-variable] 1288 | int i, ip; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'v_setup_vectors': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1605:15: warning: unused variable 'nd' [-Wunused-variable] 1605 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1604:18: warning: unused variable 'sec' [-Wunused-variable] 1604 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1603:13: warning: unused variable 'isec' [-Wunused-variable] 1603 | int isec; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_modeltype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1914:26: warning: unused variable 'lm' [-Wunused-variable] 1914 | static Template* lm = (Template*)0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_matrix_node_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1979:15: warning: unused variable 'nd' [-Wunused-variable] 1979 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1978:16: warning: unused variable 'b' [-Wunused-variable] 1978 | int i, b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_recalc_node_ptrs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:2204:24: warning: unused variable 'd' [-Wunused-variable] 2204 | Datum* d; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1914:26: warning: 'lm' defined but not used [-Wunused-variable] 1914 | static Template* lm = (Template*)0; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:268:13: warning: 'wait_for_workers_timeit' defined but not used [-Wunused-function] 268 | static void wait_for_workers_timeit() { | ^~~~~~~~~~~~~~~~~~~~~~~ [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/isaac64.c [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c: In function 'nrnRan4dbl': /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c:163:23: warning: unused variable 'extra' [-Wunused-variable] 163 | uint32_t hi, lo, extra; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c:163:19: warning: unused variable 'lo' [-Wunused-variable] 163 | uint32_t hi, lo, extra; | ^~ [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnisaac.c [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c: In function 'nrnran123_ipick': /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c:75:28: warning: array subscript has type 'char' [-Wchar-subscripts] 75 | rval = s->r.v[which++]; | ~~~~~^~ [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:2: In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '*fgets' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^~~ In file included from /usr/include/features.h:473, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdio.h:27, from /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:2: /usr/include/bits/stdio2.h:251:14: note: in a call to function '*fgets' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^~~~~~~~~~ [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/axis.c [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/bksub.c [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/code2.c /builddir/build/BUILD/nrn-7.8.1/src/oc/code2.c:516:16: warning: missing braces around initializer [-Wmissing-braces] 516 | } type_sym[] = { | ^ 517 | "Builtins", BLTIN, | { } 518 | "Other Builtins", FUN_BLTIN, | { } 519 | "Functions", FUNCTION, | { } 520 | "Procedures", PROCEDURE, | { } 521 | "Undefined", UNDEF, | { } 522 | "Scalars", VAR, | { } 523 | 0, 0 | { 524 | }; | } [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/cygwinprt.c [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/debug.c [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c: In function 'hoc_stdout': /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:78:21: warning: unused variable 'i' [-Wunused-variable] 78 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c: In function 'hoc_Load_file': /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:727:29: warning: unused variable 'i' [-Wunused-variable] 727 | int i; | ^ In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:15, from /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:8: In function 'strncpy', inlined from 'hoc_Load_file' at /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:704:2: /usr/include/bits/string_fortified.h:95:10: warning: 'strncpy' specified bound 1024 equals destination size [-Wstringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/fmenu.c [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ftime.c [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/functabl.c [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/getelm.c [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/getsym.c [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'hoc_oc': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:1414:15: warning: unused variable 'cp' [-Wunused-variable] 1414 | char *cp; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'hoc_get_line': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:1850:44: warning: unused variable 'hoc_notify_stop' [-Wunused-variable] 1850 | extern int hoc_notify_stop; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'matherr1': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:75:1: warning: control reaches end of non-void function [-Wreturn-type] 75 | } | ^ [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/hocedit.c [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/isoc99.c [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/lineq.c [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/list.c [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/math.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c: In function 'hoc_errno_check': /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c:118:13: warning: unused variable 'ierr' [-Wunused-variable] 118 | int ierr; | ^~~~ [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nonlin.c [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnfilewrap.c [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ocerf.c [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/parallel.c /builddir/build/BUILD/nrn-7.8.1/src/oc/parallel.c:26:14: warning: 'parallel_envp' defined but not used [-Wunused-variable] 26 | static char *parallel_envp; | ^~~~~~~~~~~~~ [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/parse.c [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/plot.c [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/plt.c [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/prmat.c [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c: In function 'advance': /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:383:41: warning: array subscript has type 'char' [-Wchar-subscripts] 383 | start = int_range_start[*ep]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:384:39: warning: array subscript has type 'char' [-Wchar-subscripts] 384 | stop = int_range_stop[*ep++]; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:415:26: warning: array subscript has type 'char' [-Wchar-subscripts] 415 | braslist[*ep++] = lp; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:419:26: warning: array subscript has type 'char' [-Wchar-subscripts] 419 | braelist[*ep++] = lp; | ^~~~~ [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/scoprand.c /builddir/build/BUILD/nrn-7.8.1/src/oc/scoprand.c:20:13: warning: 'RCSid' defined but not used [-Wunused-variable] 20 | static char RCSid[] = | ^~~~~ [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/settext.c [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/subrows.c [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c: In function 'nrn_cacheline_calloc': /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:246:16: warning: unused variable 'n' [-Wunused-variable] 246 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:246:13: warning: unused variable 'i' [-Wunused-variable] 246 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c: In function 'nrn_mallinfo': /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:430:9: warning: 'mallinfo' is deprecated [-Wdeprecated-declarations] 430 | m = mallinfo(); | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:25: /usr/include/malloc.h:118:24: note: declared here 118 | extern struct mallinfo mallinfo (void) __THROW __MALLOC_DEPRECATED; | ^~~~~~~~ [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/version.c [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/x.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/x.c [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/xred.c [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/ansi.c [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/basic.c [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/bind.c [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/buffer.c [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c: In function 'emacs_vtinit': /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c:88:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 88 | if (vscreen == NULL) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c:91:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 91 | if (pscreen) { | ^~ [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/file.c [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/fileio.c [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/line.c [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/lock.c [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/edef.h:43, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:231: In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: 'strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/memacs/edef.h:42, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c:29: /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c: In function 'emacs_yank': /builddir/build/BUILD/nrn-7.8.1/src/memacs/redef.h:146:15: warning: unused variable 'emacs_kused' [-Wunused-variable] 146 | #define kused emacs_kused | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c:551:30: note: in expansion of macro 'kused' 551 | extern unsigned kused; | ^~~~~ [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/region.c [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/search.c [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/spawn.c [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/tcap.c /builddir/build/BUILD/nrn-7.8.1/src/memacs/tcap.c:185:12: warning: 'putnpad' defined but not used [-Wunused-function] 185 | static int putnpad(str, n) | ^~~~~~~ [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/termio.c [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/window.c [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/word.c [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/arnoldi.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/arnoldi.c:37:13: warning: 'rcsid' defined but not used [-Wunused-variable] 37 | static char rcsid[] = "arnoldi.c,v 1.1 1997/12/04 17:55:13 hines Exp"; | ^~~~~ [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bdfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bdfactor.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "$Id: "; | ^~~~~ [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'interchange': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:55:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 55 | Real **A_me, tmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'BKPfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:108:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 108 | Real **A_me, aii, aip1, aip1i, lambda, sigma, tmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'BKPsolve': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:235:59: warning: variable 'tmp_ve' set but not used [-Wunused-but-set-variable] 235 | Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:235:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 235 | Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "bkpfacto.c,v 1.1 1997/12/04 17:55:14 hines Exp"; | ^~~~~ [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/chfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/chfactor.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "chfactor.c,v 1.1 1997/12/04 17:55:15 hines Exp"; | ^~~~~ [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/conjgrad.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/conjgrad.c:52:17: warning: 'rcsid' defined but not used [-Wunused-variable] 52 | static char rcsid[] = "conjgrad.c,v 1.1 1997/12/04 17:55:16 hines Exp"; | ^~~~~ [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c: In function 'vm_move': /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c:193:17: warning: variable 'dim0' set but not used [-Wunused-but-set-variable] 193 | int dim0, i; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c:28:17: warning: 'rcsid' defined but not used [-Wunused-variable] 28 | static char rcsid[] = "copy.c,v 1.1 1997/12/04 17:55:17 hines Exp"; | ^~~~~ [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c: In function 'main': /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:38: warning: unused variable 'dtmp' [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:31: warning: unused variable 'deps1' [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:31: warning: 'deps1' defined but not used [-Wunused-variable] /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:38: warning: 'dtmp' defined but not used [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~ [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/err.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/err.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "err.c,v 1.1 1997/12/04 17:55:19 hines Exp"; | ^~~~~ [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmm': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:439:31: warning: unused variable 'k' [-Wunused-variable] 439 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:439:28: warning: unused variable 'j' [-Wunused-variable] 439 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmtrm': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:458:28: warning: unused variable 'j' [-Wunused-variable] 458 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:458:25: warning: unused variable 'i' [-Wunused-variable] 458 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmmtr': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:476:31: warning: unused variable 'k' [-Wunused-variable] 476 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:476:28: warning: unused variable 'j' [-Wunused-variable] 476 | register int i, j, k; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:87:17: warning: 'rcsid' defined but not used [-Wunused-variable] 87 | static char rcsid[] = "$Id: extras.c,v 1.4 1995/06/08 15:13:15 des Exp $"; | ^~~~~ [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/fft.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/fft.c:34:13: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "fft.c,v 1.1 1997/12/04 17:55:20 hines Exp"; | ^~~~~ [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/givens.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/givens.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "givens.c,v 1.1 1997/12/04 17:55:22 hines Exp"; | ^~~~~ [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hessen.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hessen.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "hessen.c,v 1.1 1997/12/04 17:55:23 hines Exp"; | ^~~~~ [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hsehldr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hsehldr.c:37:17: warning: 'rcsid' defined but not used [-Wunused-variable] 37 | static char rcsid[] = "hsehldr.c,v 1.1 1997/12/04 17:55:24 hines Exp"; | ^~~~~ [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/init.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/init.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "init.c,v 1.1 1997/12/04 17:55:25 hines Exp"; | ^~~~~ [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c: In function 'iter_copy2': /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c:207:21: warning: operation on 'ip2->shared_x' may be undefined [-Wsequence-point] 207 | ip2->shared_x = ip2->shared_x = FALSE; At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c:44:13: warning: 'rcsid' defined but not used [-Wunused-variable] 44 | static char rcsid[] = "iter0.c,v 1.1 1997/12/04 17:55:26 hines Exp"; | ^~~~~ [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:826:13: warning: 'test_mgcr' defined but not used [-Wunused-function] 826 | static void test_mgcr(ip,i,Q,R) | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:541:13: warning: 'test_gmres' defined but not used [-Wunused-function] 541 | static void test_gmres(ip,i,Q,R,givc,givs,h_val) | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:43:13: warning: 'rcsid' defined but not used [-Wunused-variable] 43 | static char rcsid[] = "iternsym.c,v 1.1 1997/12/04 17:55:27 hines Exp"; | ^~~~~ [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/itersym.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/itersym.c:43:13: warning: 'rcsid' defined but not used [-Wunused-variable] 43 | static char rcsid[] = "itersym.c,v 1.1 1997/12/04 17:55:29 hines Exp"; | ^~~~~ [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c: In function 'iv_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c:117:15: warning: operation on 'iv->ive' may be undefined [-Wsequence-point] 117 | iv->ive = RENEW(iv->ive,new_dim,int); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "ivecop.c,v 1.1 1997/12/04 17:55:30 hines Exp"; | ^~~~~ [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lanczos.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lanczos.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "lanczos.c,v 1.1 1997/12/04 17:55:31 hines Exp"; | ^~~~~ [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lufactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lufactor.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "lufactor.c,v 1.1 1997/12/04 17:55:32 hines Exp"; | ^~~~~ [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/machine.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/machine.c:35:18: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char *rcsid = "machine.c,v 1.1 1997/12/04 17:55:33 hines Exp"; | ^~~~~ [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matlab.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matlab.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "matlab.c,v 1.1 1997/12/04 17:55:34 hines Exp"; | ^~~~~ [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matop.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "matop.c,v 1.1 1997/12/04 17:55:35 hines Exp"; | ^~~~~ [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matrixio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matrixio.c:35:13: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "matrixio.c,v 1.1 1997/12/04 17:55:35 hines Exp"; | ^~~~~ [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/meminfo.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/meminfo.c:46:13: warning: 'rcsid' defined but not used [-Wunused-variable] 46 | static char rcsid[] = "meminfo.c,v 1.1 1997/12/04 17:55:37 hines Exp"; | ^~~~~ [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'm_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:287:13: warning: operation on 'A->me' may be undefined [-Wsequence-point] 287 | A->me = RENEW(A->me,new_m,Real *); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:303:15: warning: operation on 'A->base' may be undefined [-Wsequence-point] 303 | A->base = RENEW(A->base,new_size,Real); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'px_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:421:14: warning: operation on 'px->pe' may be undefined [-Wsequence-point] 421 | px->pe = RENEW(px->pe,new_size,u_int); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'v_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:466:13: warning: operation on 'x->ve' may be undefined [-Wsequence-point] 466 | x->ve = RENEW(x->ve,new_dim,Real); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "memory.c,v 1.1 1997/12/04 17:55:38 hines Exp"; | ^~~~~ [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memstat.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memstat.c:44:13: warning: 'rcsid' defined but not used [-Wunused-variable] 44 | static char rcsid[] = "memstat.c,v 1.1 1997/12/04 17:55:39 hines Exp"; | ^~~~~ [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/mfunc.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/mfunc.c:39:17: warning: 'rcsid' defined but not used [-Wunused-variable] 39 | static char rcsid[] = "mfunc.c,v 1.1 1997/12/04 17:55:41 hines Exp"; | ^~~~~ [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/norm.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/norm.c:31:17: warning: 'rcsid' defined but not used [-Wunused-variable] 31 | static char rcsid[] = "norm.c,v 1.1 1997/12/04 17:55:43 hines Exp"; | ^~~~~ [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/otherio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/otherio.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "otherio.c,v 1.1 1997/12/04 17:55:44 hines Exp"; | ^~~~~ [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/pxop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/pxop.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "pxop.c,v 1.1 1997/12/04 17:55:44 hines Exp"; | ^~~~~ [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/qrfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/qrfactor.c:42:17: warning: 'rcsid' defined but not used [-Wunused-variable] 42 | static char rcsid[] = "qrfactor.c,v 1.1 1997/12/04 17:55:45 hines Exp"; | ^~~~~ [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'hhldr3cols': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:74:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 74 | Real **A_me, ip, prod; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'hhldr3rows': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:123:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 123 | Real **A_me, ip, prod; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'schur': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:159:51: warning: unused variable 't' [-Wunused-variable] 159 | Real beta2, c, discrim, dummy, nu1, s, t, tmp, x, y, z; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "schur.c,v 1.1 1997/12/04 17:55:46 hines Exp"; | ^~~~~ [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/solve.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/solve.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "solve.c,v 1.1 1997/12/04 17:55:47 hines Exp"; | ^~~~~ [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_set_val': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:99:17: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 99 | r->elt = RENEW(r->elt,new_len,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_mv_mlt': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:127:22: warning: variable 'n' set but not used [-Wunused-but-set-variable] 127 | int i, j_idx, m, n, max_idx; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_vm_mlt': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:163:22: warning: variable 'n' set but not used [-Wunused-but-set-variable] 163 | int i, j_idx, m, n, max_idx; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_copy2': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:679:16: warning: operation on 'mesch_out->row' may be undefined [-Wsequence-point] 679 | OUT->row = RENEW(OUT->row,A->m,SPROW); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:756:14: warning: operation on 'A->row' may be undefined [-Wsequence-point] 756 | A->row = RENEW(A->row,(unsigned)m,SPROW); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:783:20: warning: operation on 'A->start_row' may be undefined [-Wsequence-point] 783 | A->start_row = RENEW(A->start_row,(unsigned)n,int); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:784:20: warning: operation on 'A->start_idx' may be undefined [-Wsequence-point] 784 | A->start_idx = RENEW(A->start_idx,(unsigned)n,int); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "sparse.c,v 1.1 1997/12/04 17:55:48 hines Exp"; | ^~~~~ [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparseio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparseio.c:36:13: warning: 'rcsid' defined but not used [-Wunused-variable] 36 | static char rcsid[] = "sparseio.c,v 1.1 1997/12/04 17:55:49 hines Exp"; | ^~~~~ [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c: In function 'spBKPfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:569:17: warning: variable 'row_num' set but not used [-Wunused-but-set-variable] 569 | int row_num; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:567:44: warning: variable 'r' set but not used [-Wunused-but-set-variable] 567 | int i, j, k, l, n, onebyone=0, r; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "spbkp.c,v 1.1 1997/12/04 17:55:50 hines Exp"; | ^~~~~ [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c: In function 'spICHfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c:386:23: warning: variable 'n' set but not used [-Wunused-but-set-variable] 386 | int k, m, n, nxt_row, nxt_idx, diag_idx; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "spchfctr.c,v 1.1 1997/12/04 17:55:51 hines Exp"; | ^~~~~ [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c: In function 'spILUfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c:306:37: warning: variable 'm' set but not used [-Wunused-but-set-variable] 306 | int i, k, idx, idx_piv, m, n, old_idx, old_idx_piv; | ^ [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_xpd': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:202:14: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 202 | r->elt = RENEW(r->elt,newlen,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:248:14: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 248 | r->elt = RENEW(r->elt,n,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_set_val': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:692:17: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 692 | r->elt = RENEW(r->elt,new_len,row_elt); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "sprow.c,v 1.1 1997/12/04 17:55:53 hines Exp"; | ^~~~~ [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spswap.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spswap.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "spswap.c,v 1.1 1997/12/04 17:55:54 hines Exp"; | ^~~~~ [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/submat.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/submat.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "submat.c,v 1.1 1997/12/04 17:55:55 hines Exp"; | ^~~~~ [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/svd.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/svd.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "svd.c,v 1.1 1997/12/04 17:55:56 hines Exp"; | ^~~~~ [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/symmeig.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/symmeig.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "symmeig.c,v 1.1 1997/12/04 17:55:57 hines Exp"; | ^~~~~ [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/update.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/update.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "update.c,v 1.1 1997/12/04 17:56:01 hines Exp"; | ^~~~~ [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/vecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/vecop.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "vecop.c,v 1.1 1997/12/04 17:56:02 hines Exp"; | ^~~~~ [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/version.c [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c: In function 'zvm_move': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c:175:17: warning: variable 'dim0' set but not used [-Wunused-but-set-variable] 175 | int dim0, i; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c:28:17: warning: 'rcsid' defined but not used [-Wunused-variable] 28 | static char rcsid[] = "zcopy.c,v 1.1 1997/12/04 17:56:04 hines Exp"; | ^~~~~ [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zfunc.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zfunc.c:35:13: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "zfunc.c,v 1.1 1997/12/04 17:56:05 hines Exp"; | ^~~~~ [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zgivens.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zgivens.c:36:17: warning: 'rcsid' defined but not used [-Wunused-variable] 36 | static char rcsid[] = "$Id: "; | ^~~~~ [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhessen.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhessen.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "zhessen.c,v 1.1 1997/12/04 17:56:07 hines Exp"; | ^~~~~ [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhsehldr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhsehldr.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "zhsehldr.c,v 1.1 1997/12/04 17:56:08 hines Exp"; | ^~~~~ [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zlufctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zlufctr.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "zlufctr.c,v 1.1 1997/12/04 17:56:09 hines Exp"; | ^~~~~ [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmachine.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmachine.c:35:18: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char *rcsid = "zmachine.c,v 1.1 1997/12/04 17:56:10 hines Exp"; | ^~~~~ [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatio.c:33:13: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zmatio.c,v 1.1 1997/12/04 17:56:11 hines Exp"; | ^~~~~ [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatlab.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatlab.c:41:13: warning: 'rcsid' defined but not used [-Wunused-variable] 41 | static char rcsid[] = "zmatlab.c,v 1.1 1997/12/04 17:56:11 hines Exp"; | ^~~~~ [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatop.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "zmatop.c,v 1.1 1997/12/04 17:56:12 hines Exp"; | ^~~~~ [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c: In function 'zm_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:250:13: warning: operation on 'A->me' may be undefined [-Wsequence-point] 250 | A->me = RENEW(A->me,new_m,complex *); /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:266:15: warning: operation on 'A->base' may be undefined [-Wsequence-point] 266 | A->base = RENEW(A->base,new_size,complex); /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c: In function 'zv_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:385:13: warning: operation on 'x->ve' may be undefined [-Wsequence-point] 385 | x->ve = RENEW(x->ve,new_dim,complex); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zmemory.c,v 1.1 1997/12/04 17:56:13 hines Exp"; | ^~~~~ [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/znorm.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/znorm.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "znorm.c,v 1.1 1997/12/04 17:56:14 hines Exp"; | ^~~~~ [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zqrfctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zqrfctr.c:42:17: warning: 'rcsid' defined but not used [-Wunused-variable] 42 | static char rcsid[] = "zqrfctr.c,v 1.1 1997/12/04 17:56:15 hines Exp"; | ^~~~~ [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zschur.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zschur.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "zschur.c,v 1.1 1997/12/04 17:56:16 hines Exp"; | ^~~~~ [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zsolve.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zsolve.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zsolve.c,v 1.1 1997/12/04 17:56:17 hines Exp"; | ^~~~~ [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zvecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zvecop.c:31:17: warning: 'rcsid' defined but not used [-Wunused-variable] 31 | static char rcsid[] = "zvecop.c,v 1.1 1997/12/04 17:56:19 hines Exp"; | ^~~~~ [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:116:34: warning: missing braces around initializer [-Wmissing-braces] 116 | static VoidFunc hoc_intfunc[] = { | ^ 117 | 0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:119:38: warning: missing braces around initializer [-Wmissing-braces] 119 | static Member_func _member_func[] = { | ^ 120 | "loc", _hoc_loc_pnt, | { } 121 | "has_loc", _hoc_has_loc, | { } 122 | "get_loc", _hoc_get_loc_pnt, | { } 123 | "check", _hoc_check, | { } 124 | "record", _hoc_record, | { } 125 | 0, 0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | "thresh", "mV", | { } 134 | "time", "ms", | { } 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:170:15: warning: unused variable 'prop_ion' [-Wunused-variable] 170 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_apcount_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:200:13: warning: unused variable '_vectorized' [-Wunused-variable] 200 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:18: warning: unused variable '_save' [-Wunused-variable] 293 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:7: warning: unused variable '_i' [-Wunused-variable] 293 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_cur__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:35: warning: variable '_v' set but not used [-Wunused-but-set-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:29: warning: unused variable '_rhs' [-Wunused-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:9: warning: variable '_p' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_jacob__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:20: warning: unused variable '_ppvar' [-Wunused-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:420:6: warning: unused variable '_i' [-Wunused-variable] 420 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:419:21: warning: unused variable '_p' [-Wunused-variable] 419 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:416:13: warning: 'terminal' defined but not used [-Wunused-function] 416 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:28:22: warning: '_nrn_current__APCount' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__APCount | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:335:15: note: in expansion of macro '_nrn_current' 335 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:226:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 226 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:224:12: warning: '_ninits' defined but not used [-Wunused-variable] 224 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:223:12: warning: 'error' defined but not used [-Wunused-variable] 223 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:221:14: warning: 'modelname' defined but not used [-Wunused-variable] 221 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:220:12: warning: '_reset' defined but not used [-Wunused-variable] 220 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:137:16: warning: 'delta_t' defined but not used [-Wunused-variable] 137 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:111:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 111 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:188:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 188 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:82:34: warning: missing braces around initializer [-Wmissing-braces] 82 | static VoidFunc hoc_intfunc[] = { | ^ 83 | "setdata_feature", _hoc_setdata, | { } 84 | "install_vector_fitness", _hoc_install_vector_fitness, | { } 85 | 0, 0 | { 86 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:44: warning: missing braces around initializer [-Wmissing-braces] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^ 90 | 0,0,0 | { { 91 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:42: warning: missing braces around initializer [-Wmissing-braces] 92 | static HocParmUnits _hoc_parm_units[] = { | ^ 93 | 0,0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:97:33: warning: missing braces around initializer [-Wmissing-braces] 97 | static DoubScal hoc_scdoub[] = { | ^ 98 | 0,0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:100:31: warning: missing braces around initializer [-Wmissing-braces] 100 | static DoubVec hoc_vdoub[] = { | ^ 101 | 0,0,0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:120:28: warning: unused variable '_ppvar' [-Wunused-variable] 120 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:119:15: warning: unused variable 'prop_ion' [-Wunused-variable] 119 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_feature_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:135:13: warning: unused variable '_vectorized' [-Wunused-variable] 135 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'width': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:152:13: warning: unused variable 'i' [-Wunused-variable] 152 | int i, nx, ny, i1, i2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'xfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:177:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 177 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'yfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:207:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 207 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:18: warning: unused variable '_save' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:7: warning: unused variable '_i' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:324:6: warning: unused variable '_i' [-Wunused-variable] 324 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:321:13: warning: 'terminal' defined but not used [-Wunused-function] 321 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:30:19: warning: '_nrn_state_' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state_ | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:297:13: note: in expansion of macro 'nrn_state' 297 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:28:22: warning: '_nrn_current_' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current_ | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:293:15: note: in expansion of macro '_nrn_current' 293 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:25:18: warning: '_nrn_init_' defined but not used [-Wunused-function] 25 | #define nrn_init _nrn_init_ | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:272:13: note: in expansion of macro 'nrn_init' 272 | static void nrn_init(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:146:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 146 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:143:12: warning: 'error' defined but not used [-Wunused-variable] 143 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:141:14: warning: 'modelname' defined but not used [-Wunused-variable] 141 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:140:12: warning: '_reset' defined but not used [-Wunused-variable] 140 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:118:13: warning: 'nrn_alloc' defined but not used [-Wunused-function] 118 | static void nrn_alloc(Prop* _prop) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:108:21: warning: '_mechanism' defined but not used [-Wunused-variable] 108 | static const char *_mechanism[] = { | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:103:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 103 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:22: warning: '_hoc_parm_units' defined but not used [-Wunused-variable] 92 | static HocParmUnits _hoc_parm_units[] = { | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:23: warning: '_hoc_parm_limits' defined but not used [-Wunused-variable] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:60:13: warning: 'hoc_nrnpointerindex' defined but not used [-Wunused-variable] 60 | static int hoc_nrnpointerindex = -1; | ^~~~~~~~~~~~~~~~~~~ [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:117:34: warning: missing braces around initializer [-Wmissing-braces] 117 | static VoidFunc hoc_intfunc[] = { | ^ 118 | 0,0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:120:38: warning: missing braces around initializer [-Wmissing-braces] 120 | static Member_func _member_func[] = { | ^ 121 | "loc", _hoc_loc_pnt, | { } 122 | "has_loc", _hoc_has_loc, | { } 123 | "get_loc", _hoc_get_loc_pnt, | { } 124 | "I", _hoc_I, | { } 125 | "M", _hoc_M, | { } 126 | "firetime", _hoc_firetime, | { } 127 | "newton1", _hoc_newton1, | { } 128 | 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:140:44: warning: missing braces around initializer [-Wmissing-braces] 140 | static HocParmLimits _hoc_parm_limits[] = { | ^ 141 | 0,0,0 | { { 142 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:143:42: warning: missing braces around initializer [-Wmissing-braces] 143 | static HocParmUnits _hoc_parm_units[] = { | ^ 144 | "taus", "ms", | { } 145 | "taum", "ms", | { } 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:179:15: warning: unused variable 'prop_ion' [-Wunused-variable] 179 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_intfire2_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:212:13: warning: unused variable '_vectorized' [-Wunused-variable] 212 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'I_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:268:15: warning: variable '_lf' set but not used [-Wunused-but-set-variable] 268 | double _lx , _lf ; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'newton1_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:371:38: warning: variable '_lxm' set but not used [-Wunused-but-set-variable] 371 | double _ldx , _lf , _ldf , _liter , _lxm ; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:18: warning: unused variable '_save' [-Wunused-variable] 415 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:7: warning: unused variable '_i' [-Wunused-variable] 415 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_init__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:19: warning: unused variable '_v' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:7: warning: unused variable '_nd' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_state__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:469:6: warning: unused variable '_i' [-Wunused-variable] 469 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:468:21: warning: unused variable '_p' [-Wunused-variable] 468 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:465:13: warning: 'terminal' defined but not used [-Wunused-function] 465 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:30:19: warning: '_nrn_state__IntFire2' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire2 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:448:13: note: in expansion of macro 'nrn_state' 448 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:28:22: warning: '_nrn_current__IntFire2' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire2 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:444:15: note: in expansion of macro '_nrn_current' 444 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:243:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 243 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:241:12: warning: '_ninits' defined but not used [-Wunused-variable] 241 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:240:12: warning: 'error' defined but not used [-Wunused-variable] 240 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:238:14: warning: 'modelname' defined but not used [-Wunused-variable] 238 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:237:12: warning: '_reset' defined but not used [-Wunused-variable] 237 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:112:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 112 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:197:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 197 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:118:34: warning: missing braces around initializer [-Wmissing-braces] 118 | static VoidFunc hoc_intfunc[] = { | ^ 119 | 0,0 | { 120 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:121:38: warning: missing braces around initializer [-Wmissing-braces] 121 | static Member_func _member_func[] = { | ^ 122 | "loc", _hoc_loc_pnt, | { } 123 | "has_loc", _hoc_has_loc, | { } 124 | "get_loc", _hoc_get_loc_pnt, | { } 125 | "icur", _hoc_icur, | { } 126 | "vstim", _hoc_vstim, | { } 127 | 0, 0 | { 128 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:131:44: warning: missing braces around initializer [-Wmissing-braces] 131 | static HocParmLimits _hoc_parm_limits[] = { | ^ 132 | "rs", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "rs", "megohm", | { } 137 | "on", "ms", | { } 138 | "off", "ms", | { } 139 | "vc", "mV", | { } 140 | "i", "nA", | { } 141 | 0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:145:33: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubScal hoc_scdoub[] = { | ^ 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:148:31: warning: missing braces around initializer [-Wmissing-braces] 148 | static DoubVec hoc_vdoub[] = { | ^ 149 | 0,0,0 | { 150 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_oclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:210:13: warning: unused variable '_vectorized' [-Wunused-variable] 210 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:18: warning: unused variable '_save' [-Wunused-variable] 292 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:7: warning: unused variable '_i' [-Wunused-variable] 292 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_nrn_jacob__OClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:20: warning: unused variable '_ppvar' [-Wunused-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:461:6: warning: unused variable '_i' [-Wunused-variable] 461 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:460:21: warning: unused variable '_p' [-Wunused-variable] 460 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:457:13: warning: 'terminal' defined but not used [-Wunused-function] 457 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:236:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 236 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:234:12: warning: '_ninits' defined but not used [-Wunused-variable] 234 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:233:12: warning: 'error' defined but not used [-Wunused-variable] 233 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:231:14: warning: 'modelname' defined but not used [-Wunused-variable] 231 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:230:12: warning: '_reset' defined but not used [-Wunused-variable] 230 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:151:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 151 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:143:16: warning: 'delta_t' defined but not used [-Wunused-variable] 143 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:113:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 113 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:198:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 198 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:106:34: warning: missing braces around initializer [-Wmissing-braces] 106 | static VoidFunc hoc_intfunc[] = { | ^ 107 | 0,0 | { 108 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:109:38: warning: missing braces around initializer [-Wmissing-braces] 109 | static Member_func _member_func[] = { | ^ 110 | "loc", _hoc_loc_pnt, | { } 111 | "has_loc", _hoc_has_loc, | { } 112 | "get_loc", _hoc_get_loc_pnt, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:117:44: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmLimits _hoc_parm_limits[] = { | ^ 118 | 0,0,0 | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:120:42: warning: missing braces around initializer [-Wmissing-braces] 120 | static HocParmUnits _hoc_parm_units[] = { | ^ 121 | 0,0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:124:33: warning: missing braces around initializer [-Wmissing-braces] 124 | static DoubScal hoc_scdoub[] = { | ^ 125 | 0,0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:127:31: warning: missing braces around initializer [-Wmissing-braces] 127 | static DoubVec hoc_vdoub[] = { | ^ 128 | 0,0,0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:149:15: warning: unused variable 'prop_ion' [-Wunused-variable] 149 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_ppmark_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:176:13: warning: unused variable '_vectorized' [-Wunused-variable] 176 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:18: warning: unused variable '_save' [-Wunused-variable] 205 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:7: warning: unused variable '_i' [-Wunused-variable] 205 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_nrn_state__PointProcessMark': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:268:6: warning: unused variable '_i' [-Wunused-variable] 268 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:267:21: warning: unused variable '_p' [-Wunused-variable] 267 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:264:13: warning: 'terminal' defined but not used [-Wunused-function] 264 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:30:19: warning: '_nrn_state__PointProcessMark' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:238:13: note: in expansion of macro 'nrn_state' 238 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:28:22: warning: '_nrn_current__PointProcessMark' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:234:15: note: in expansion of macro '_nrn_current' 234 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:202:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 202 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:200:12: warning: '_ninits' defined but not used [-Wunused-variable] 200 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:199:12: warning: 'error' defined but not used [-Wunused-variable] 199 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:197:14: warning: 'modelname' defined but not used [-Wunused-variable] 197 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:196:12: warning: '_reset' defined but not used [-Wunused-variable] 196 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:130:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 130 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:101:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 101 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:62:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 62 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:164:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 164 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | "alpha", _hoc_alpha, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:128:44: warning: missing braces around initializer [-Wmissing-braces] 128 | static HocParmLimits _hoc_parm_limits[] = { | ^ 129 | "gmax", 0, 1e+09, | { { }} 130 | "tau", 0.001, 1e+06, | { { }} 131 | 0,0,0 | { { 132 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:133:42: warning: missing braces around initializer [-Wmissing-braces] 133 | static HocParmUnits _hoc_parm_units[] = { | ^ 134 | "onset", "ms", | { } 135 | "tau", "ms", | { } 136 | "gmax", "uS", | { } 137 | "e", "mV", | { } 138 | "i", "nA", | { } 139 | 0,0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:142:33: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubScal hoc_scdoub[] = { | ^ 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:145:31: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubVec hoc_vdoub[] = { | ^ 146 | 0,0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:174:15: warning: unused variable 'prop_ion' [-Wunused-variable] 174 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:205:13: warning: unused variable '_vectorized' [-Wunused-variable] 205 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:18: warning: unused variable '_save' [-Wunused-variable] 257 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:7: warning: unused variable '_i' [-Wunused-variable] 257 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_jacob__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:20: warning: unused variable '_ppvar' [-Wunused-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:368:6: warning: unused variable '_i' [-Wunused-variable] 368 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:367:21: warning: unused variable '_p' [-Wunused-variable] 367 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:364:13: warning: 'terminal' defined but not used [-Wunused-function] 364 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:231:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 231 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:229:12: warning: '_ninits' defined but not used [-Wunused-variable] 229 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:228:12: warning: 'error' defined but not used [-Wunused-variable] 228 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:226:14: warning: 'modelname' defined but not used [-Wunused-variable] 226 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:225:12: warning: '_reset' defined but not used [-Wunused-variable] 225 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:148:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 148 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:193:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 193 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_cur__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:107:26: warning: '_nd' may be used uninitialized in this function [-Wmaybe-uninitialized] 107 | #define NODERHS(n) (*((n)->_rhs)) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:300:7: note: '_nd' was declared here 300 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~ [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:119:34: warning: missing braces around initializer [-Wmissing-braces] 119 | static VoidFunc hoc_intfunc[] = { | ^ 120 | 0,0 | { 121 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:122:38: warning: missing braces around initializer [-Wmissing-braces] 122 | static Member_func _member_func[] = { | ^ 123 | "loc", _hoc_loc_pnt, | { } 124 | "has_loc", _hoc_has_loc, | { } 125 | "get_loc", _hoc_get_loc_pnt, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:130:44: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmLimits _hoc_parm_limits[] = { | ^ 131 | "tau2", 1e-09, 1e+09, | { { }} 132 | "tau1", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "tau1", "ms", | { } 137 | "tau2", "ms", | { } 138 | "e", "mV", | { } 139 | "A", "uS", | { } 140 | "B", "uS", | { } 141 | "i", "nA", | { } 142 | "g", "uS", | { } 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:191:15: warning: unused variable 'prop_ion' [-Wunused-variable] 191 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:216:46: warning: missing braces around initializer [-Wmissing-braces] 216 | static HocStateTolerance _hoc_state_tol[] = { | ^ 217 | 0,0 | { 218 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_exp2syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:227:13: warning: unused variable '_vectorized' [-Wunused-variable] 227 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_net_receive__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:325:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 325 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:340:22: warning: unused variable '_v' [-Wunused-variable] 340 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:18: warning: unused variable '_save' [-Wunused-variable] 351 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:7: warning: unused variable '_i' [-Wunused-variable] 351 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_nrn_jacob__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:20: warning: unused variable '_ppvar' [-Wunused-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:499:6: warning: unused variable '_i' [-Wunused-variable] 499 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:495:13: warning: 'terminal' defined but not used [-Wunused-function] 495 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:258:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 258 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:256:12: warning: '_ninits' defined but not used [-Wunused-variable] 256 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:255:12: warning: 'error' defined but not used [-Wunused-variable] 255 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:253:14: warning: 'modelname' defined but not used [-Wunused-variable] 253 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:252:12: warning: '_reset' defined but not used [-Wunused-variable] 252 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:147:16: warning: 'delta_t' defined but not used [-Wunused-variable] 147 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:114:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 114 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:75:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 75 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:209:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 209 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:122:34: warning: missing braces around initializer [-Wmissing-braces] 122 | static VoidFunc hoc_intfunc[] = { | ^ 123 | "setdata_hh", _hoc_setdata, | { } 124 | "rates_hh", _hoc_rates, | { } 125 | "vtrap_hh", _hoc_vtrap, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:154:44: warning: missing braces around initializer [-Wmissing-braces] 154 | static HocParmLimits _hoc_parm_limits[] = { | ^ 155 | "gl_hh", 0, 1e+09, | { { }} 156 | "gkbar_hh", 0, 1e+09, | { { }} 157 | "gnabar_hh", 0, 1e+09, | { { }} 158 | "usetable_hh", 0, 1, | { { }} 159 | 0,0,0 | { { 160 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:161:42: warning: missing braces around initializer [-Wmissing-braces] 161 | static HocParmUnits _hoc_parm_units[] = { | ^ 162 | "mtau_hh", "ms", | { } 163 | "htau_hh", "ms", | { } 164 | "ntau_hh", "ms", | { } 165 | "gnabar_hh", "S/cm2", | { } 166 | "gkbar_hh", "S/cm2", | { } 167 | "gl_hh", "S/cm2", | { } 168 | "el_hh", "mV", | { } 169 | "gna_hh", "S/cm2", | { } 170 | "gk_hh", "S/cm2", | { } 171 | "il_hh", "mA/cm2", | { } 172 | 0,0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:179:33: warning: missing braces around initializer [-Wmissing-braces] 179 | static DoubScal hoc_scdoub[] = { | ^ 180 | "minf_hh", &minf_hh, | { } 181 | "hinf_hh", &hinf_hh, | { } 182 | "ninf_hh", &ninf_hh, | { } 183 | "mtau_hh", &mtau_hh, | { } 184 | "htau_hh", &htau_hh, | { } 185 | "ntau_hh", &ntau_hh, | { } 186 | "usetable_hh", &usetable_hh, | { } 187 | 0,0 | { 188 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:189:31: warning: missing braces around initializer [-Wmissing-braces] 189 | static DoubVec hoc_vdoub[] = { | ^ 190 | 0,0,0 | { 191 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:258:46: warning: missing braces around initializer [-Wmissing-braces] 258 | static HocStateTolerance _hoc_state_tol[] = { | ^ 259 | 0,0 | { 260 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_hh_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:271:13: warning: unused variable '_vectorized' [-Wunused-variable] 271 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_check_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:356:10: warning: unused variable '_xi' [-Wunused-variable] 356 | double _xi, _tmax; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:39: warning: unused variable '_ix' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:35: warning: unused variable '_j' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_n_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:385:104: warning: unused variable '_j' [-Wunused-variable] 385 | static void _n_rates(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _lv){ int _i, _j; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:488:22: warning: unused variable '_v' [-Wunused-variable] 488 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:501:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 501 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:516:22: warning: unused variable '_v' [-Wunused-variable] 516 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:18: warning: unused variable '_save' [-Wunused-variable] 553 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:7: warning: unused variable '_i' [-Wunused-variable] 553 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_nrn_jacob__hh': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:20: warning: unused variable '_ppvar' [-Wunused-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:714:6: warning: unused variable '_i' [-Wunused-variable] 714 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:710:13: warning: 'terminal' defined but not used [-Wunused-function] 710 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:318:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 318 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:316:12: warning: '_ninits' defined but not used [-Wunused-variable] 316 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:315:12: warning: 'error' defined but not used [-Wunused-variable] 315 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:313:14: warning: 'modelname' defined but not used [-Wunused-variable] 313 | static char *modelname = "hh.mod squid sodium, potassium, and leak channels"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:312:12: warning: '_reset' defined but not used [-Wunused-variable] 312 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:192:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 192 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:174:16: warning: 'delta_t' defined but not used [-Wunused-variable] 174 | static double delta_t = 0.01; | ^~~~~~~ [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:151:34: warning: missing braces around initializer [-Wmissing-braces] 151 | static VoidFunc hoc_intfunc[] = { | ^ 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:154:38: warning: missing braces around initializer [-Wmissing-braces] 154 | static Member_func _member_func[] = { | ^ 155 | "loc", _hoc_loc_pnt, | { } 156 | "has_loc", _hoc_has_loc, | { } 157 | "get_loc", _hoc_get_loc_pnt, | { } 158 | "E", _hoc_E, | { } 159 | "I", _hoc_I, | { } 160 | "M", _hoc_M, | { } 161 | "deriv", _hoc_deriv, | { } 162 | "firetimebound", _hoc_firetimebound, | { } 163 | "factors", _hoc_factors, | { } 164 | "fixprecondition", _hoc_fixprecondition, | { } 165 | "newstates", _hoc_newstates, | { } 166 | "search", _hoc_search, | { } 167 | "update", _hoc_update, | { } 168 | 0, 0 | { 169 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:190:44: warning: missing braces around initializer [-Wmissing-braces] 190 | static HocParmLimits _hoc_parm_limits[] = { | ^ 191 | "eps_IntFire4", 1e-09, 0.01, | { { }} 192 | "taueps_IntFire4", 1e-09, 1e+09, | { { }} 193 | "taum", 0, 1e+09, | { { }} 194 | "taui2", 0, 1e+09, | { { }} 195 | "taui1", 0, 1e+09, | { { }} 196 | "taue", 0, 1e+09, | { { }} 197 | 0,0,0 | { { 198 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:199:42: warning: missing braces around initializer [-Wmissing-braces] 199 | static HocParmUnits _hoc_parm_units[] = { | ^ 200 | "eps_IntFire4", "1e-9", | { } 201 | "taueps_IntFire4", "1e-9", | { } 202 | "taue", "ms", | { } 203 | "taui1", "ms", | { } 204 | "taui2", "ms", | { } 205 | "taum", "ms", | { } 206 | "ae", "1/ms", | { } 207 | "ai1", "1/ms", | { } 208 | "ai2", "1/ms", | { } 209 | 0,0 | { 210 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:212:33: warning: missing braces around initializer [-Wmissing-braces] 212 | static DoubScal hoc_scdoub[] = { | ^ 213 | "ib_IntFire4", &ib_IntFire4, | { } 214 | "eps_IntFire4", &eps_IntFire4, | { } 215 | "taueps_IntFire4", &taueps_IntFire4, | { } 216 | 0,0 | { 217 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:218:31: warning: missing braces around initializer [-Wmissing-braces] 218 | static DoubVec hoc_vdoub[] = { | ^ 219 | 0,0,0 | { 220 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:254:15: warning: unused variable 'prop_ion' [-Wunused-variable] 254 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_intfire4_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:288:13: warning: unused variable '_vectorized' [-Wunused-variable] 288 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:18: warning: unused variable '_save' [-Wunused-variable] 665 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:7: warning: unused variable '_i' [-Wunused-variable] 665 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_init__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:19: warning: unused variable '_v' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:7: warning: unused variable '_nd' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_state__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:723:6: warning: unused variable '_i' [-Wunused-variable] 723 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:722:21: warning: unused variable '_p' [-Wunused-variable] 722 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:719:13: warning: 'terminal' defined but not used [-Wunused-function] 719 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:30:19: warning: '_nrn_state__IntFire4' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire4 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:702:13: note: in expansion of macro 'nrn_state' 702 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:28:22: warning: '_nrn_current__IntFire4' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire4 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:698:15: note: in expansion of macro '_nrn_current' 698 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:319:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 319 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:317:12: warning: '_ninits' defined but not used [-Wunused-variable] 317 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:316:12: warning: 'error' defined but not used [-Wunused-variable] 316 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:314:14: warning: 'modelname' defined but not used [-Wunused-variable] 314 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:313:12: warning: '_reset' defined but not used [-Wunused-variable] 313 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:221:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 221 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:146:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 146 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:273:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 273 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'search_IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:596:8: warning: '_lsearch' may be used uninitialized in this function [-Wmaybe-uninitialized] 596 | return _lsearch; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:585:17: warning: '_lt2' may be used uninitialized in this function [-Wmaybe-uninitialized] 585 | while ( _lt2 - _lt1 > 1e-6 && flag == 0.0 ) { | ~~~~~^~~~~~ [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:96:34: warning: missing braces around initializer [-Wmissing-braces] 96 | static VoidFunc hoc_intfunc[] = { | ^ 97 | "setdata_pas", _hoc_setdata, | { } 98 | 0, 0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:102:44: warning: missing braces around initializer [-Wmissing-braces] 102 | static HocParmLimits _hoc_parm_limits[] = { | ^ 103 | "g_pas", 0, 1e+09, | { { }} 104 | 0,0,0 | { { 105 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:106:42: warning: missing braces around initializer [-Wmissing-braces] 106 | static HocParmUnits _hoc_parm_units[] = { | ^ 107 | "g_pas", "S/cm2", | { } 108 | "e_pas", "mV", | { } 109 | "i_pas", "mA/cm2", | { } 110 | 0,0 | { 111 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:113:33: warning: missing braces around initializer [-Wmissing-braces] 113 | static DoubScal hoc_scdoub[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:116:31: warning: missing braces around initializer [-Wmissing-braces] 116 | static DoubVec hoc_vdoub[] = { | ^ 117 | 0,0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:141:28: warning: unused variable '_ppvar' [-Wunused-variable] 141 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:140:15: warning: unused variable 'prop_ion' [-Wunused-variable] 140 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_passive_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:158:13: warning: unused variable '_vectorized' [-Wunused-variable] 158 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:18: warning: unused variable '_save' [-Wunused-variable] 182 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:7: warning: unused variable '_i' [-Wunused-variable] 182 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_nrn_jacob__pas': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:20: warning: unused variable '_ppvar' [-Wunused-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:287:6: warning: unused variable '_i' [-Wunused-variable] 287 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:286:21: warning: unused variable '_p' [-Wunused-variable] 286 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:283:13: warning: 'terminal' defined but not used [-Wunused-function] 283 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:179:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 179 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:177:12: warning: '_ninits' defined but not used [-Wunused-variable] 177 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:176:12: warning: 'error' defined but not used [-Wunused-variable] 176 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:174:14: warning: 'modelname' defined but not used [-Wunused-variable] 174 | static char *modelname = "passive membrane channel"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:173:12: warning: '_reset' defined but not used [-Wunused-variable] 173 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:119:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 119 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:65:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 65 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | 0, 0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:122:44: warning: missing braces around initializer [-Wmissing-braces] 122 | static HocParmLimits _hoc_parm_limits[] = { | ^ 123 | "dur", 0, 1e+09, | { { }} 124 | 0,0,0 | { { 125 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:126:42: warning: missing braces around initializer [-Wmissing-braces] 126 | static HocParmUnits _hoc_parm_units[] = { | ^ 127 | "del", "ms", | { } 128 | "dur", "ms", | { } 129 | "amp", "nA", | { } 130 | "i", "nA", | { } 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:134:33: warning: missing braces around initializer [-Wmissing-braces] 134 | static DoubScal hoc_scdoub[] = { | ^ 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:137:31: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubVec hoc_vdoub[] = { | ^ 138 | 0,0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:165:15: warning: unused variable 'prop_ion' [-Wunused-variable] 165 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_stim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:195:13: warning: unused variable '_vectorized' [-Wunused-variable] 195 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:18: warning: unused variable '_save' [-Wunused-variable] 224 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:7: warning: unused variable '_i' [-Wunused-variable] 224 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_nrn_jacob__IClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:20: warning: unused variable '_ppvar' [-Wunused-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:369:6: warning: unused variable '_i' [-Wunused-variable] 369 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:368:21: warning: unused variable '_p' [-Wunused-variable] 368 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:365:13: warning: 'terminal' defined but not used [-Wunused-function] 365 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:221:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 221 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:219:12: warning: '_ninits' defined but not used [-Wunused-variable] 219 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:218:12: warning: 'error' defined but not used [-Wunused-variable] 218 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:216:14: warning: 'modelname' defined but not used [-Wunused-variable] 216 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:215:12: warning: '_reset' defined but not used [-Wunused-variable] 215 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:140:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 140 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:106:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 106 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:67:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 67 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:183:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 183 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "icur", _hoc_icur, | { } 136 | "update", _hoc_update, | { } 137 | "vstim", _hoc_vstim, | { } 138 | 0, 0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:144:44: warning: missing braces around initializer [-Wmissing-braces] 144 | static HocParmLimits _hoc_parm_limits[] = { | ^ 145 | "dur", 0, 1e+09, | { { }} 146 | "fac", 1, 10, | { { }} 147 | "gain", 0, 1e+09, | { { }} 148 | "rstim", 1e-09, 1e+09, | { { }} 149 | "tau2", 0, 1e+09, | { { }} 150 | "tau1", 0, 1e+09, | { { }} 151 | 0,0,0 | { { 152 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:153:42: warning: missing braces around initializer [-Wmissing-braces] 153 | static HocParmUnits _hoc_parm_units[] = { | ^ 154 | "dur", "ms", | { } 155 | "amp", "mV", | { } 156 | "rstim", "megohm", | { } 157 | "tau1", "ms", | { } 158 | "tau2", "ms", | { } 159 | "e0", "mV", | { } 160 | "vo0", "mV", | { } 161 | "vi0", "mV", | { } 162 | "fac", "1.0", | { } 163 | "e", "mV", | { } 164 | "vo", "mV", | { } 165 | "vi", "mV", | { } 166 | "i", "nA", | { } 167 | 0,0 | { 168 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:172:33: warning: missing braces around initializer [-Wmissing-braces] 172 | static DoubScal hoc_scdoub[] = { | ^ 173 | 0,0 | { 174 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:175:31: warning: missing braces around initializer [-Wmissing-braces] 175 | static DoubVec hoc_vdoub[] = { | ^ 176 | 0,0,0 | { 177 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:213:15: warning: unused variable 'prop_ion' [-Wunused-variable] 213 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_vclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:248:13: warning: unused variable '_vectorized' [-Wunused-variable] 248 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'icur_VClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:306:9: warning: unused variable '_lvout' [-Wunused-variable] 306 | double _lvout ; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:382:7: warning: unused variable '_i' [-Wunused-variable] 382 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:561:6: warning: unused variable '_i' [-Wunused-variable] 561 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:558:13: warning: 'terminal' defined but not used [-Wunused-function] 558 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:274:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 274 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:269:14: warning: 'modelname' defined but not used [-Wunused-variable] 269 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:268:12: warning: '_reset' defined but not used [-Wunused-variable] 268 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:169:16: warning: 'delta_t' defined but not used [-Wunused-variable] 169 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:236:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 236 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:125:44: warning: missing braces around initializer [-Wmissing-braces] 125 | static HocParmLimits _hoc_parm_limits[] = { | ^ 126 | "tau", 1e-09, 1e+09, | { { }} 127 | 0,0,0 | { { 128 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:129:42: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmUnits _hoc_parm_units[] = { | ^ 130 | "tau", "ms", | { } 131 | "e", "mV", | { } 132 | "g", "uS", | { } 133 | "i", "nA", | { } 134 | 0,0 | { 135 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:202:46: warning: missing braces around initializer [-Wmissing-braces] 202 | static HocStateTolerance _hoc_state_tol[] = { | ^ 203 | 0,0 | { 204 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_expsyn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:213:13: warning: unused variable '_vectorized' [-Wunused-variable] 213 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_net_receive__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:288:22: warning: unused variable '_v' [-Wunused-variable] 288 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:299:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 299 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:18: warning: unused variable '_save' [-Wunused-variable] 325 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:7: warning: unused variable '_i' [-Wunused-variable] 325 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_nrn_jacob__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:20: warning: unused variable '_ppvar' [-Wunused-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:460:6: warning: unused variable '_i' [-Wunused-variable] 460 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:456:13: warning: 'terminal' defined but not used [-Wunused-function] 456 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:244:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 244 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:242:12: warning: '_ninits' defined but not used [-Wunused-variable] 242 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:241:12: warning: 'error' defined but not used [-Wunused-variable] 241 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:239:14: warning: 'modelname' defined but not used [-Wunused-variable] 239 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:238:12: warning: '_reset' defined but not used [-Wunused-variable] 238 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:136:16: warning: 'delta_t' defined but not used [-Wunused-variable] 136 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:70:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 70 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:195:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 195 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:113:34: warning: missing braces around initializer [-Wmissing-braces] 113 | static VoidFunc hoc_intfunc[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:116:38: warning: missing braces around initializer [-Wmissing-braces] 116 | static Member_func _member_func[] = { | ^ 117 | "loc", _hoc_loc_pnt, | { } 118 | "has_loc", _hoc_has_loc, | { } 119 | "get_loc", _hoc_get_loc_pnt, | { } 120 | "M", _hoc_M, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:127:44: warning: missing braces around initializer [-Wmissing-braces] 127 | static HocParmLimits _hoc_parm_limits[] = { | ^ 128 | 0,0,0 | { { 129 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:130:42: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmUnits _hoc_parm_units[] = { | ^ 131 | "tau", "ms", | { } 132 | "refrac", "ms", | { } 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:136:33: warning: missing braces around initializer [-Wmissing-braces] 136 | static DoubScal hoc_scdoub[] = { | ^ 137 | 0,0 | { 138 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:139:31: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubVec hoc_vdoub[] = { | ^ 140 | 0,0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:164:15: warning: unused variable 'prop_ion' [-Wunused-variable] 164 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_intfire1_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:196:13: warning: unused variable '_vectorized' [-Wunused-variable] 196 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_net_receive__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:258:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 258 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:18: warning: unused variable '_save' [-Wunused-variable] 282 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:7: warning: unused variable '_i' [-Wunused-variable] 282 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_init__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:19: warning: unused variable '_v' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:7: warning: unused variable '_nd' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_state__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:332:6: warning: unused variable '_i' [-Wunused-variable] 332 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:331:21: warning: unused variable '_p' [-Wunused-variable] 331 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:328:13: warning: 'terminal' defined but not used [-Wunused-function] 328 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:30:19: warning: '_nrn_state__IntFire1' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire1 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:311:13: note: in expansion of macro 'nrn_state' 311 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:28:22: warning: '_nrn_current__IntFire1' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire1 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:307:15: note: in expansion of macro '_nrn_current' 307 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:227:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 227 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:225:12: warning: '_ninits' defined but not used [-Wunused-variable] 225 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:224:12: warning: 'error' defined but not used [-Wunused-variable] 224 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:222:14: warning: 'modelname' defined but not used [-Wunused-variable] 222 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:221:12: warning: '_reset' defined but not used [-Wunused-variable] 221 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:142:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 142 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:108:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 108 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:181:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 181 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'M_IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:243:8: warning: '_lM' may be used uninitialized in this function [-Wmaybe-uninitialized] 243 | return _lM; | ^~~ [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "erand", _hoc_erand, | { } 136 | "init_sequence", _hoc_init_sequence, | { } 137 | "invl", _hoc_invl, | { } 138 | "next_invl", _hoc_next_invl, | { } 139 | "noiseFromRandom123", _hoc_noiseFromRandom123, | { } 140 | "noiseFromRandom", _hoc_noiseFromRandom, | { } 141 | "seed", _hoc_seed, | { } 142 | 0, 0 | { 143 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:150:44: warning: missing braces around initializer [-Wmissing-braces] 150 | static HocParmLimits _hoc_parm_limits[] = { | ^ 151 | "interval", 1e-09, 1e+09, | { { }} 152 | "noise", 0, 1, | { { }} 153 | "number", 0, 1e+09, | { { }} 154 | 0,0,0 | { { 155 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:156:42: warning: missing braces around initializer [-Wmissing-braces] 156 | static HocParmUnits _hoc_parm_units[] = { | ^ 157 | "interval", "ms", | { } 158 | "start", "ms", | { } 159 | 0,0 | { 160 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:162:33: warning: missing braces around initializer [-Wmissing-braces] 162 | static DoubScal hoc_scdoub[] = { | ^ 163 | 0,0 | { 164 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:165:31: warning: missing braces around initializer [-Wmissing-braces] 165 | static DoubVec hoc_vdoub[] = { | ^ 166 | 0,0,0 | { 167 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_netstim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:228:13: warning: unused variable '_vectorized' [-Wunused-variable] 228 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:18: warning: unused variable '_save' [-Wunused-variable] 586 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:7: warning: unused variable '_i' [-Wunused-variable] 586 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_init__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:19: warning: unused variable '_v' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:7: warning: unused variable '_nd' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_state__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:655:6: warning: unused variable '_i' [-Wunused-variable] 655 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:654:21: warning: unused variable '_p' [-Wunused-variable] 654 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:651:13: warning: 'terminal' defined but not used [-Wunused-function] 651 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:30:19: warning: '_nrn_state__NetStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__NetStim | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:634:13: note: in expansion of macro 'nrn_state' 634 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:28:22: warning: '_nrn_current__NetStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__NetStim | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:630:15: note: in expansion of macro '_nrn_current' 630 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:518:13: warning: 'bbcore_read' defined but not used [-Wunused-function] 518 | static void bbcore_read(double* x, int* d, int* xx, int* offset, _threadargsproto_) { | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:261:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 261 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:259:12: warning: '_ninits' defined but not used [-Wunused-variable] 259 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:258:12: warning: 'error' defined but not used [-Wunused-variable] 258 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:256:14: warning: 'modelname' defined but not used [-Wunused-variable] 256 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:255:12: warning: '_reset' defined but not used [-Wunused-variable] 255 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:168:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 168 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:123:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 123 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:211:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 211 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | "initps", _hoc_initps, | { } 119 | "play", _hoc_play, | { } 120 | "sendgroup", _hoc_sendgroup, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:137:33: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubScal hoc_scdoub[] = { | ^ 138 | 0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:140:31: warning: missing braces around initializer [-Wmissing-braces] 140 | static DoubVec hoc_vdoub[] = { | ^ 141 | 0,0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:166:15: warning: unused variable 'prop_ion' [-Wunused-variable] 166 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_pattern_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:198:13: warning: unused variable '_vectorized' [-Wunused-variable] 198 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:18: warning: unused variable '_save' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:7: warning: unused variable '_i' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_init__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:19: warning: unused variable '_v' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:7: warning: unused variable '_nd' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_state__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:426:6: warning: unused variable '_i' [-Wunused-variable] 426 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:423:13: warning: 'terminal' defined but not used [-Wunused-function] 423 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:30:19: warning: '_nrn_state__PatternStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:408:13: note: in expansion of macro 'nrn_state' 408 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:28:22: warning: '_nrn_current__PatternStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:404:15: note: in expansion of macro '_nrn_current' 404 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:230:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 230 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:227:12: warning: 'error' defined but not used [-Wunused-variable] 227 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:225:14: warning: 'modelname' defined but not used [-Wunused-variable] 225 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:224:12: warning: '_reset' defined but not used [-Wunused-variable] 224 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:143:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 143 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:182:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 182 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:123:34: warning: missing braces around initializer [-Wmissing-braces] 123 | static VoidFunc hoc_intfunc[] = { | ^ 124 | 0,0 | { 125 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:126:38: warning: missing braces around initializer [-Wmissing-braces] 126 | static Member_func _member_func[] = { | ^ 127 | "loc", _hoc_loc_pnt, | { } 128 | "has_loc", _hoc_has_loc, | { } 129 | "get_loc", _hoc_get_loc_pnt, | { } 130 | "icur", _hoc_icur, | { } 131 | "vstim", _hoc_vstim, | { } 132 | 0, 0 | { 133 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:136:44: warning: missing braces around initializer [-Wmissing-braces] 136 | static HocParmLimits _hoc_parm_limits[] = { | ^ 137 | "dur3", 0, 1e+09, | { { }} 138 | "dur2", 0, 1e+09, | { { }} 139 | "rs", 1e-09, 1e+09, | { { }} 140 | 0,0,0 | { { 141 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:142:42: warning: missing braces around initializer [-Wmissing-braces] 142 | static HocParmUnits _hoc_parm_units[] = { | ^ 143 | "rs", "megohm", | { } 144 | "dur1", "ms", | { } 145 | "amp1", "mV", | { } 146 | "dur2", "ms", | { } 147 | "amp2", "mV", | { } 148 | "dur3", "ms", | { } 149 | "amp3", "mV", | { } 150 | "i", "nA", | { } 151 | "vc", "mV", | { } 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:156:33: warning: missing braces around initializer [-Wmissing-braces] 156 | static DoubScal hoc_scdoub[] = { | ^ 157 | 0,0 | { 158 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:159:31: warning: missing braces around initializer [-Wmissing-braces] 159 | static DoubVec hoc_vdoub[] = { | ^ 160 | 0,0,0 | { 161 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_svclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:226:13: warning: unused variable '_vectorized' [-Wunused-variable] 226 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:18: warning: unused variable '_save' [-Wunused-variable] 317 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:7: warning: unused variable '_i' [-Wunused-variable] 317 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_nrn_jacob__SEClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:20: warning: unused variable '_ppvar' [-Wunused-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:488:6: warning: unused variable '_i' [-Wunused-variable] 488 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:487:21: warning: unused variable '_p' [-Wunused-variable] 487 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:484:13: warning: 'terminal' defined but not used [-Wunused-function] 484 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:252:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 252 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:250:12: warning: '_ninits' defined but not used [-Wunused-variable] 250 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:249:12: warning: 'error' defined but not used [-Wunused-variable] 249 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:247:14: warning: 'modelname' defined but not used [-Wunused-variable] 247 | static char *modelname = "svclmp.mod"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:246:12: warning: '_reset' defined but not used [-Wunused-variable] 246 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:162:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 162 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:154:16: warning: 'delta_t' defined but not used [-Wunused-variable] 154 | static double delta_t = 1; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:118:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 118 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:214:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 214 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 65%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/ACG.cpp [ 65%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Binomial.cpp [ 65%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Complex.cpp [ 65%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/DiscUnif.cpp [ 66%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Erlang.cpp [ 66%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Geom.cpp [ 66%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/HypGeom.cpp [ 66%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/LogNorm.cpp [ 66%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/MLCG.cpp [ 67%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/NegExp.cpp [ 67%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Normal.cpp [ 67%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Poisson.cpp [ 67%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/RNG.cpp [ 67%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Random.cpp [ 68%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:93:8: warning: when initialized here [-Wreorder] 93 | inline RandomInteger::RandomInteger(long low, long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:99:8: warning: when initialized here [-Wreorder] 99 | inline RandomInteger::RandomInteger(long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:106:8: warning: when initialized here [-Wreorder] 106 | inline RandomInteger::RandomInteger(RNG *gen) | ^~~~~~~~~~~~~ [ 68%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp [ 68%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplStat.cpp [ 68%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Uniform.cpp [ 68%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Weibull.cpp [ 69%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/builtin.cpp [ 69%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/d_avec.cpp [ 69%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/d_vec.cpp [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c: In function 'abort_run': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c:50:10: warning: unused variable 'tmpstr' [-Wunused-variable] 50 | char tmpstr[4]; | ^~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adams.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adams.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adeuler.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adeuler.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adrunge.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adrunge.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/advance.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/advance.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/boundary.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/boundary.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 71%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crank.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crank.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 71%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 71%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:104:17: warning: missing braces around initializer [-Wmissing-braces] 104 | } eh0001_ = { 1, 6 }; | ^ | { } /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'lsoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2489:9: note: in expansion of macro 'ls0001_1' 2489 | if (ls0001_1.init == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2497:5: note: in expansion of macro 'ls0001_1' 2497 | ls0001_1.init = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2502:5: note: in expansion of macro 'ls0001_1' 2502 | ls0001_1.ntrep = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2520:18: note: in expansion of macro 'ls0001_1' 2520 | if (neq[1] > ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2524:5: note: in expansion of macro 'ls0001_1' 2524 | ls0001_1.n = neq[1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2540:25: note: in expansion of macro 'ls0001_1' 2540 | if (ml < 0 || ml >= ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2543:25: note: in expansion of macro 'ls0001_1' 2543 | if (mu < 0 || mu >= ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2553:5: note: in expansion of macro 'ls0001_1' 2553 | ls0001_1.mxstep = mxstp0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2554:5: note: in expansion of macro 'ls0001_1' 2554 | ls0001_1.mxhnil = mxhnl0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2555:5: note: in expansion of macro 'ls0001_1' 2555 | ls0001_1.hmxi = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2556:5: note: in expansion of macro 'ls0001_1' 2556 | ls0001_1.hmin = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2569:5: note: in expansion of macro 'ls0001_1' 2569 | ls0001_1.mxstep = iwork[6]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2570:9: note: in expansion of macro 'ls0001_1' 2570 | if (ls0001_1.mxstep < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2573:9: note: in expansion of macro 'ls0001_1' 2573 | if (ls0001_1.mxstep == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2574:9: note: in expansion of macro 'ls0001_1' 2574 | ls0001_1.mxstep = mxstp0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2576:5: note: in expansion of macro 'ls0001_1' 2576 | ls0001_1.mxhnil = iwork[7]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2577:9: note: in expansion of macro 'ls0001_1' 2577 | if (ls0001_1.mxhnil < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2580:9: note: in expansion of macro 'ls0001_1' 2580 | if (ls0001_1.mxhnil == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2581:9: note: in expansion of macro 'ls0001_1' 2581 | ls0001_1.mxhnil = mxhnl0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2611:5: note: in expansion of macro 'ls0001_1' 2611 | ls0001_1.hmxi = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2613:9: note: in expansion of macro 'ls0001_1' 2613 | ls0001_1.hmxi = 1. / hmax; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2615:5: note: in expansion of macro 'ls0001_1' 2615 | ls0001_1.hmin = rwork[7]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2616:9: note: in expansion of macro 'ls0001_1' 2616 | if (ls0001_1.hmin < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2637:9: note: in expansion of macro 'ls0001_1' 2637 | ls0001_1.meth = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2640:9: note: in expansion of macro 'ls0001_1' 2640 | ls0001_1.nyh = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2640:24: note: in expansion of macro 'ls0001_1' 2640 | ls0001_1.nyh = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2642:5: note: in expansion of macro 'ls0001_1' 2642 | ls0001_1.lyh = 21; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2643:37: note: in expansion of macro 'ls0001_1' 2643 | len1n = (lsa001_1.mxordn + 1) * ls0001_1.nyh + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2644:37: note: in expansion of macro 'ls0001_1' 2644 | len1s = (lsa001_1.mxords + 1) * ls0001_1.nyh + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2645:5: note: in expansion of macro 'ls0001_1' 2645 | ls0001_1.lwm = len1s + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2647:17: note: in expansion of macro 'ls0001_1' 2647 | lenwm = ls0001_1.n * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2647:30: note: in expansion of macro 'ls0001_1' 2647 | lenwm = ls0001_1.n * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2650:40: note: in expansion of macro 'ls0001_1' 2650 | lenwm = ((ml << 1) + mu + 1) * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2654:9: note: in expansion of macro 'ls0001_1' 2654 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2658:12: note: in expansion of macro 'ls0001_1' 2658 | len2 = ls0001_1.n * 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2664:5: note: in expansion of macro 'ls0001_1' 2664 | ls0001_1.liwm = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2665:13: note: in expansion of macro 'ls0001_1' 2665 | leniw = ls0001_1.n + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2667:9: note: in expansion of macro 'ls0001_1' 2667 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2683:5: note: in expansion of macro 'ls0001_1' 2683 | ls0001_1.lewt = len1 + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2689:5: note: in expansion of macro 'ls0001_1' 2689 | ls0001_1.lewt = len1c + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:5: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:22: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:38: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:5: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:22: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:39: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2719:11: note: in expansion of macro 'ls0001_1' 2719 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2740:5: note: in expansion of macro 'ls0001_1' 2740 | ls0001_1.jstart = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2741:9: note: in expansion of macro 'ls0001_1' 2741 | if (ls0001_1.n == ls0001_1.nyh) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2741:23: note: in expansion of macro 'ls0001_1' 2741 | if (ls0001_1.n == ls0001_1.nyh) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:10: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:25: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:38: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:10: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:26: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:49: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2767:5: note: in expansion of macro 'ls0001_1' 2767 | ls0001_1.uround = d1mach_(&c__4); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2768:5: note: in expansion of macro 'ls0001_1' 2768 | ls0001_1.tn = *t; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2770:5: note: in expansion of macro 'ls0001_1' 2770 | ls0001_1.maxord = lsa001_1.mxordn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2782:5: note: in expansion of macro 'ls0001_1' 2782 | ls0001_1.jstart = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2783:5: note: in expansion of macro 'ls0001_1' 2783 | ls0001_1.nhnil = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2784:5: note: in expansion of macro 'ls0001_1' 2784 | ls0001_1.nst = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2785:5: note: in expansion of macro 'ls0001_1' 2785 | ls0001_1.nje = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2786:5: note: in expansion of macro 'ls0001_1' 2786 | ls0001_1.nslast = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2787:5: note: in expansion of macro 'ls0001_1' 2787 | ls0001_1.hu = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2788:5: note: in expansion of macro 'ls0001_1' 2788 | ls0001_1.nqu = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2790:5: note: in expansion of macro 'ls0001_1' 2790 | ls0001_1.miter = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2791:5: note: in expansion of macro 'ls0001_1' 2791 | ls0001_1.ccmax = .3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2792:5: note: in expansion of macro 'ls0001_1' 2792 | ls0001_1.maxcor = 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2793:5: note: in expansion of macro 'ls0001_1' 2793 | ls0001_1.msbp = 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2794:5: note: in expansion of macro 'ls0001_1' 2794 | ls0001_1.mxncf = 10; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2797:11: note: in expansion of macro 'ls0001_1' 2797 | lf0 = ls0001_1.lyh + ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2797:26: note: in expansion of macro 'ls0001_1' 2797 | lf0 = ls0001_1.lyh + ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2799:5: note: in expansion of macro 'ls0001_1' 2799 | ls0001_1.nfe = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2802:11: note: in expansion of macro 'ls0001_1' 2802 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2805:19: note: in expansion of macro 'ls0001_1' 2805 | rwork[i + ls0001_1.lyh - 1] = y[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2809:5: note: in expansion of macro 'ls0001_1' 2809 | ls0001_1.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2810:5: note: in expansion of macro 'ls0001_1' 2810 | ls0001_1.h = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:13: note: in expansion of macro 'ls0001_1' 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:58: note: in expansion of macro 'ls0001_1' 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2812:19: note: in expansion of macro 'ls0001_1' 2812 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2813:11: note: in expansion of macro 'ls0001_1' 2813 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2815:23: note: in expansion of macro 'ls0001_1' 2815 | if (rwork[i + ls0001_1.lewt - 1] <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2819:19: note: in expansion of macro 'ls0001_1' 2819 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2819:55: note: in expansion of macro 'ls0001_1' 2819 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2849:17: note: in expansion of macro 'ls0001_1' 2849 | if (tdist < ls0001_1.uround * 2. * w0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2856:11: note: in expansion of macro 'ls0001_1' 2856 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2868:11: note: in expansion of macro 'ls0001_1' 2868 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2883:22: note: in expansion of macro 'ls0001_1' 2883 | d_1 = tol, d_2 = ls0001_1.uround * 100.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:20: note: in expansion of macro 'ls0001_1' 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:52: note: in expansion of macro 'ls0001_1' 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2897:20: note: in expansion of macro 'ls0001_1' 2897 | rh = abs(h0) * ls0001_1.hmxi; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2903:5: note: in expansion of macro 'ls0001_1' 2903 | ls0001_1.h = h0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2904:11: note: in expansion of macro 'ls0001_1' 2904 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2919:5: note: in expansion of macro 'ls0001_1' 2919 | ls0001_1.nslast = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2919:23: note: in expansion of macro 'ls0001_1' 2919 | ls0001_1.nslast = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2928:10: note: in expansion of macro 'ls0001_1' 2928 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2928:33: note: in expansion of macro 'ls0001_1' 2928 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2931:32: note: in expansion of macro 'ls0001_1' 2931 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2931:48: note: in expansion of macro 'ls0001_1' 2931 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:10: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:24: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:39: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2939:24: note: in expansion of macro 'ls0001_1' 2939 | if ((tp - *tout) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2942:10: note: in expansion of macro 'ls0001_1' 2942 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2942:33: note: in expansion of macro 'ls0001_1' 2942 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2945:10: note: in expansion of macro 'ls0001_1' 2945 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2949:10: note: in expansion of macro 'ls0001_1' 2949 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2949:33: note: in expansion of macro 'ls0001_1' 2949 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2952:27: note: in expansion of macro 'ls0001_1' 2952 | if ((tcrit - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2955:10: note: in expansion of macro 'ls0001_1' 2955 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2955:33: note: in expansion of macro 'ls0001_1' 2955 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2958:32: note: in expansion of macro 'ls0001_1' 2958 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2958:48: note: in expansion of macro 'ls0001_1' 2958 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2966:10: note: in expansion of macro 'ls0001_1' 2966 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2966:33: note: in expansion of macro 'ls0001_1' 2966 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2971:19: note: in expansion of macro 'ls0001_1' 2971 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2971:53: note: in expansion of macro 'ls0001_1' 2971 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:13: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:27: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:41: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2980:27: note: in expansion of macro 'ls0001_1' 2980 | if ((tnext - tcrit) * ls0001_1.h <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:5: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:27: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:48: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2985:9: note: in expansion of macro 'ls0001_1' 2985 | ls0001_1.jstart = -2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3001:9: note: in expansion of macro 'ls0001_1' 3001 | if (ls0001_1.meth == lsa001_1.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:9: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:24: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:43: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:13: note: in expansion of macro 'ls0001_1' 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:58: note: in expansion of macro 'ls0001_1' 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3015:19: note: in expansion of macro 'ls0001_1' 3015 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3016:11: note: in expansion of macro 'ls0001_1' 3016 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3018:23: note: in expansion of macro 'ls0001_1' 3018 | if (rwork[i + ls0001_1.lewt - 1] <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3022:19: note: in expansion of macro 'ls0001_1' 3022 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3022:55: note: in expansion of macro 'ls0001_1' 3022 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:13: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:40: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:59: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3026:19: note: in expansion of macro 'ls0001_1' 3026 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3031:9: note: in expansion of macro 'ls0001_1' 3031 | if (ls0001_1.nst == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:9: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:23: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:37: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3039:7: note: in expansion of macro 'ls0001_1' 3039 | ++ls0001_1.nhnil; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3040:9: note: in expansion of macro 'ls0001_1' 3040 | if (ls0001_1.nhnil > ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3040:26: note: in expansion of macro 'ls0001_1' 3040 | if (ls0001_1.nhnil > ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3050:57: note: in expansion of macro 'ls0001_1' 3050 | c__101, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3051:13: note: in expansion of macro 'ls0001_1' 3051 | ls0001_1.h, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3052:9: note: in expansion of macro 'ls0001_1' 3052 | if (ls0001_1.nhnil < ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3052:26: note: in expansion of macro 'ls0001_1' 3052 | if (ls0001_1.nhnil < ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3059:36: note: in expansion of macro 'ls0001_1' 3059 | c__102, &c__0, &c__1, &ls0001_1.mxhnil, &c__0, &c__0, &c_b136, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3068:35: note: in expansion of macro 'ls0001_1' 3068 | stoda_(&neq[1], &y[1], &rwork[ls0001_1.lyh], &ls0001_1.nyh, &rwork[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3068:51: note: in expansion of macro 'ls0001_1' 3068 | stoda_(&neq[1], &y[1], &rwork[ls0001_1.lyh], &ls0001_1.nyh, &rwork[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:13: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:35: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:58: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:19: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:43: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:65: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3072:15: note: in expansion of macro 'ls0001_1' 3072 | kgo = 1 - ls0001_1.kflag; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3091:5: note: in expansion of macro 'ls0001_1' 3091 | ls0001_1.init = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3092:9: note: in expansion of macro 'ls0001_1' 3092 | if (ls0001_1.meth == lsa001_1.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3095:20: note: in expansion of macro 'ls0001_1' 3095 | lsa001_1.tsw = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3096:5: note: in expansion of macro 'ls0001_1' 3096 | ls0001_1.maxord = lsa001_1.mxordn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3097:9: note: in expansion of macro 'ls0001_1' 3097 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3098:9: note: in expansion of macro 'ls0001_1' 3098 | ls0001_1.maxord = lsa001_1.mxords; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3100:9: note: in expansion of macro 'ls0001_1' 3100 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3101:15: note: in expansion of macro 'ls0001_1' 3101 | rwork[ls0001_1.lwm] = sqrt(ls0001_1.uround); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3101:36: note: in expansion of macro 'ls0001_1' 3101 | rwork[ls0001_1.lwm] = sqrt(ls0001_1.uround); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3105:5: note: in expansion of macro 'ls0001_1' 3105 | ls0001_1.jstart = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3109:9: note: in expansion of macro 'ls0001_1' 3109 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3114:9: note: in expansion of macro 'ls0001_1' 3114 | if (ls0001_1.meth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3120:44: note: in expansion of macro 'ls0001_1' 3120 | c__60, &c__107, &c__0, &c__1, &ls0001_1.nst, &c__0, &c__2, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3121:13: note: in expansion of macro 'ls0001_1' 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3121:27: note: in expansion of macro 'ls0001_1' 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3133:10: note: in expansion of macro 'ls0001_1' 3133 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3133:33: note: in expansion of macro 'ls0001_1' 3133 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3136:32: note: in expansion of macro 'ls0001_1' 3136 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3136:48: note: in expansion of macro 'ls0001_1' 3136 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3142:10: note: in expansion of macro 'ls0001_1' 3142 | if ((ls0001_1.tn - *tout) * ls0001_1.h >= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3142:33: note: in expansion of macro 'ls0001_1' 3142 | if ((ls0001_1.tn - *tout) * ls0001_1.h >= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3149:10: note: in expansion of macro 'ls0001_1' 3149 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3149:33: note: in expansion of macro 'ls0001_1' 3149 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3152:32: note: in expansion of macro 'ls0001_1' 3152 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3152:48: note: in expansion of macro 'ls0001_1' 3152 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3157:19: note: in expansion of macro 'ls0001_1' 3157 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3157:53: note: in expansion of macro 'ls0001_1' 3157 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:13: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:27: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:41: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3163:27: note: in expansion of macro 'ls0001_1' 3163 | if ((tnext - tcrit) * ls0001_1.h <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:5: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:27: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:48: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3167:5: note: in expansion of macro 'ls0001_1' 3167 | ls0001_1.jstart = -2; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3173:19: note: in expansion of macro 'ls0001_1' 3173 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3173:53: note: in expansion of macro 'ls0001_1' 3173 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3187:11: note: in expansion of macro 'ls0001_1' 3187 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3190:26: note: in expansion of macro 'ls0001_1' 3190 | y[i] = rwork[i + ls0001_1.lyh - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3192:10: note: in expansion of macro 'ls0001_1' 3192 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3201:5: note: in expansion of macro 'ls0001_1' 3201 | ls0001_1.illin = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3202:17: note: in expansion of macro 'ls0001_1' 3202 | rwork[11] = ls0001_1.hu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3203:17: note: in expansion of macro 'ls0001_1' 3203 | rwork[12] = ls0001_1.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3204:17: note: in expansion of macro 'ls0001_1' 3204 | rwork[13] = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3206:17: note: in expansion of macro 'ls0001_1' 3206 | iwork[11] = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3207:17: note: in expansion of macro 'ls0001_1' 3207 | iwork[12] = ls0001_1.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3208:17: note: in expansion of macro 'ls0001_1' 3208 | iwork[13] = ls0001_1.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3209:17: note: in expansion of macro 'ls0001_1' 3209 | iwork[14] = ls0001_1.nqu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3210:17: note: in expansion of macro 'ls0001_1' 3210 | iwork[15] = ls0001_1.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3212:17: note: in expansion of macro 'ls0001_1' 3212 | iwork[20] = ls0001_1.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3216:7: note: in expansion of macro 'ls0001_1' 3216 | ++ls0001_1.ntrep; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3217:9: note: in expansion of macro 'ls0001_1' 3217 | if (ls0001_1.ntrep < 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3244:36: note: in expansion of macro 'ls0001_1' 3244 | c__201, &c__0, &c__1, &ls0001_1.mxstep, &c__0, &c__1, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3245:13: note: in expansion of macro 'ls0001_1' 3245 | ls0001_1.tn, &c_b136, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3251:18: note: in expansion of macro 'ls0001_1' 3251 | ewti = rwork[ls0001_1.lewt + i - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3253:54: note: in expansion of macro 'ls0001_1' 3253 | c__202, &c__0, &c__1, &i, &c__0, &c__2, &ls0001_1.tn, &ewti, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3264:57: note: in expansion of macro 'ls0001_1' 3264 | c__203, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, &tolsf, | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3276:57: note: in expansion of macro 'ls0001_1' 3276 | c__204, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3277:13: note: in expansion of macro 'ls0001_1' 3277 | ls0001_1.h, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3290:34: note: in expansion of macro 'ls0001_1' 3290 | c__0, &c__0, &c__2, &ls0001_1.tn, &ls0001_1.h, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3290:48: note: in expansion of macro 'ls0001_1' 3290 | c__0, &c__0, &c__2, &ls0001_1.tn, &ls0001_1.h, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3300:65: note: in expansion of macro 'ls0001_1' 3300 | c__60, &c__206, &c__0, &c__0, &c__0, &c__0, &c__1, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3311:65: note: in expansion of macro 'ls0001_1' 3311 | c__60, &c__207, &c__0, &c__0, &c__0, &c__0, &c__1, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3320:11: note: in expansion of macro 'ls0001_1' 3320 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3322:33: note: in expansion of macro 'ls0001_1' 3322 | size = (d_1 = rwork[i + ls0001_1.lacor - 1] * rwork[i + ls0001_1.lewt | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3322:65: note: in expansion of macro 'ls0001_1' 3322 | size = (d_1 = rwork[i + ls0001_1.lacor - 1] * rwork[i + ls0001_1.lewt | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3336:11: note: in expansion of macro 'ls0001_1' 3336 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3339:26: note: in expansion of macro 'ls0001_1' 3339 | y[i] = rwork[i + ls0001_1.lyh - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3341:10: note: in expansion of macro 'ls0001_1' 3341 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3342:5: note: in expansion of macro 'ls0001_1' 3342 | ls0001_1.illin = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3343:17: note: in expansion of macro 'ls0001_1' 3343 | rwork[11] = ls0001_1.hu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3344:17: note: in expansion of macro 'ls0001_1' 3344 | rwork[12] = ls0001_1.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3345:17: note: in expansion of macro 'ls0001_1' 3345 | rwork[13] = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3347:17: note: in expansion of macro 'ls0001_1' 3347 | iwork[11] = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3348:17: note: in expansion of macro 'ls0001_1' 3348 | iwork[12] = ls0001_1.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3349:17: note: in expansion of macro 'ls0001_1' 3349 | iwork[13] = ls0001_1.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3350:17: note: in expansion of macro 'ls0001_1' 3350 | iwork[14] = ls0001_1.nqu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3351:17: note: in expansion of macro 'ls0001_1' 3351 | iwork[15] = ls0001_1.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3353:17: note: in expansion of macro 'ls0001_1' 3353 | iwork[20] = ls0001_1.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3383:34: note: in expansion of macro 'ls0001_1' 3383 | c__5, &c__0, &c__2, &ls0001_1.n, &neq[1], &c__0, &c_b136, &c_b136, | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3412:13: note: in expansion of macro 'ls0001_1' 3412 | ls0001_1.mxstep, &c__0, &c__0, &c_b136, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3416:13: note: in expansion of macro 'ls0001_1' 3416 | ls0001_1.mxhnil, &c__0, &c__0, &c_b136, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3430:34: note: in expansion of macro 'ls0001_1' 3430 | c__0, &c__0, &c__1, &ls0001_1.hmin, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3451:18: note: in expansion of macro 'ls0001_1' 3451 | ewti = rwork[ls0001_1.lewt + i - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3467:13: note: in expansion of macro 'ls0001_1' 3467 | ls0001_1.tn, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3495:9: note: in expansion of macro 'ls0001_1' 3495 | if (ls0001_1.illin == 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3498:7: note: in expansion of macro 'ls0001_1' 3498 | ++ls0001_1.illin; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:1461:49: warning: variable 'lenrws' set but not used [-Wunused-but-set-variable] 1461 | static integer leniwc, lenrwc, lf0, lenrwn, lenrws; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:1461:41: warning: variable 'lenrwn' set but not used [-Wunused-but-set-variable] 1461 | static integer leniwc, lenrwc, lf0, lenrwn, lenrws; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'prja_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3597:7: note: in expansion of macro 'ls0001_2' 3597 | ++ls0001_2.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3598:5: note: in expansion of macro 'ls0001_2' 3598 | ls0001_2.ierpj = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3599:5: note: in expansion of macro 'ls0001_2' 3599 | ls0001_2.jcur = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3600:11: note: in expansion of macro 'ls0001_2' 3600 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3600:24: note: in expansion of macro 'ls0001_2' 3600 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3601:18: note: in expansion of macro 'ls0001_2' 3601 | switch ((int)ls0001_2.miter) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3611:12: note: in expansion of macro 'ls0001_2' 3611 | lenp = ls0001_2.n * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3611:25: note: in expansion of macro 'ls0001_2' 3611 | lenp = ls0001_2.n * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:22: note: in expansion of macro 'ls0001_2' 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:65: note: in expansion of macro 'ls0001_2' 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3628:20: note: in expansion of macro 'ls0001_2' 3628 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:34: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:65: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3636:11: note: in expansion of macro 'ls0001_2' 3636 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3644:24: note: in expansion of macro 'ls0001_2' 3644 | (*f)(&neq[1], &ls0001_2.tn, &y[1], &ftem[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3645:15: note: in expansion of macro 'ls0001_2' 3645 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3651:15: note: in expansion of macro 'ls0001_2' 3651 | j1 += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:5: note: in expansion of macro 'ls0001_2' 3654 | ls0001_2.nfe += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:21: note: in expansion of macro 'ls0001_2' 3654 | ls0001_2.nfe += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3658:31: note: in expansion of macro 'ls0001_2' 3658 | lsa001_2.pdnorm = fnorm_(&ls0001_2.n, &wm[3], &ewt[1]) / abs(hl0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3661:11: note: in expansion of macro 'ls0001_2' 3661 | np1 = ls0001_2.n + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3663:11: note: in expansion of macro 'ls0001_2' 3663 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3671:21: note: in expansion of macro 'ls0001_2' 3671 | dgefa_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3671:34: note: in expansion of macro 'ls0001_2' 3671 | dgefa_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3673:9: note: in expansion of macro 'ls0001_2' 3673 | ls0001_2.ierpj = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3688:21: note: in expansion of macro 'ls0001_2' 3688 | lenp = meband * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3694:22: note: in expansion of macro 'ls0001_2' 3694 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &ml, &mu, &wm[ml3], &meband); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3708:21: note: in expansion of macro 'ls0001_2' 3708 | mba = min(mband,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3708:21: note: in expansion of macro 'ls0001_2' 3708 | mba = min(mband,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3712:20: note: in expansion of macro 'ls0001_2' 3712 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:34: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:65: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3720:15: note: in expansion of macro 'ls0001_2' 3720 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3730:24: note: in expansion of macro 'ls0001_2' 3730 | (*f)(&neq[1], &ls0001_2.tn, &y[1], &ftem[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3731:15: note: in expansion of macro 'ls0001_2' 3731 | i_3 = ls0001_2.n; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3745:26: note: in expansion of macro 'ls0001_2' 3745 | i2 = min(i_4,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3745:26: note: in expansion of macro 'ls0001_2' 3745 | i2 = min(i_4,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:5: note: in expansion of macro 'ls0001_2' 3756 | ls0001_2.nfe += mba; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3760:31: note: in expansion of macro 'ls0001_2' 3760 | lsa001_2.pdnorm = bnorm_(&ls0001_2.n, &wm[3], &meband, &ml, &mu, &ewt[1]) | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3765:11: note: in expansion of macro 'ls0001_2' 3765 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3773:30: note: in expansion of macro 'ls0001_2' 3773 | dgbfa_(&wm[3], &meband, &ls0001_2.n, &ml, &mu, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3775:9: note: in expansion of macro 'ls0001_2' 3775 | ls0001_2.ierpj = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'solsy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3835:5: note: in expansion of macro 'ls0001_2' 3835 | ls0001_2.iersl = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3836:18: note: in expansion of macro 'ls0001_2' 3836 | switch ((int)ls0001_2.miter) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3844:21: note: in expansion of macro 'ls0001_2' 3844 | dgesl_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3844:34: note: in expansion of macro 'ls0001_2' 3844 | dgesl_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3849:11: note: in expansion of macro 'ls0001_2' 3849 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3849:24: note: in expansion of macro 'ls0001_2' 3849 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3855:11: note: in expansion of macro 'ls0001_2' 3855 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3865:11: note: in expansion of macro 'ls0001_2' 3865 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3872:5: note: in expansion of macro 'ls0001_2' 3872 | ls0001_2.iersl = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3879:30: note: in expansion of macro 'ls0001_2' 3879 | dgbsl_(&wm[3], &meband, &ls0001_2.n, &ml, &mu, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'stoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3958:5: note: in expansion of macro 'ls0001_3' 3958 | ls0001_3.kflag = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3959:12: note: in expansion of macro 'ls0001_3' 3959 | told = ls0001_3.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3961:5: note: in expansion of macro 'ls0001_3' 3961 | ls0001_3.ierpj = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3962:5: note: in expansion of macro 'ls0001_3' 3962 | ls0001_3.iersl = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3963:5: note: in expansion of macro 'ls0001_3' 3963 | ls0001_3.jcur = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3964:5: note: in expansion of macro 'ls0001_3' 3964 | ls0001_3.icf = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3966:9: note: in expansion of macro 'ls0001_3' 3966 | if (ls0001_3.jstart > 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3969:9: note: in expansion of macro 'ls0001_3' 3969 | if (ls0001_3.jstart == -1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3972:9: note: in expansion of macro 'ls0001_3' 3972 | if (ls0001_3.jstart == -2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3986:5: note: in expansion of macro 'ls0001_3' 3986 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3986:21: note: in expansion of macro 'ls0001_3' 3986 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3987:5: note: in expansion of macro 'ls0001_3' 3987 | ls0001_3.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3988:5: note: in expansion of macro 'ls0001_3' 3988 | ls0001_3.l = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3989:5: note: in expansion of macro 'ls0001_3' 3989 | ls0001_3.ialth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3990:5: note: in expansion of macro 'ls0001_3' 3990 | ls0001_3.rmax = 1e4; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3991:5: note: in expansion of macro 'ls0001_3' 3991 | ls0001_3.rc = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3992:5: note: in expansion of macro 'ls0001_3' 3992 | ls0001_3.el0 = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3993:5: note: in expansion of macro 'ls0001_3' 3993 | ls0001_3.crate = .7; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3994:5: note: in expansion of macro 'ls0001_3' 3994 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3994:21: note: in expansion of macro 'ls0001_3' 3994 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3995:5: note: in expansion of macro 'ls0001_3' 3995 | ls0001_3.nslp = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3996:5: note: in expansion of macro 'ls0001_3' 3996 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3996:21: note: in expansion of macro 'ls0001_3' 3996 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4005:19: note: in expansion of macro 'ls0001_3' 4005 | cfode_(&c__2, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4005:34: note: in expansion of macro 'ls0001_3' 4005 | cfode_(&c__2, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4008:31: note: in expansion of macro 'ls0001_3' 4008 | lsa001_3.cm2[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4008:59: note: in expansion of macro 'ls0001_3' 4008 | lsa001_3.cm2[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4011:19: note: in expansion of macro 'ls0001_3' 4011 | cfode_(&c__1, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4011:34: note: in expansion of macro 'ls0001_3' 4011 | cfode_(&c__1, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4014:31: note: in expansion of macro 'ls0001_3' 4014 | lsa001_3.cm1[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4014:59: note: in expansion of macro 'ls0001_3' 4014 | lsa001_3.cm1[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4032:5: note: in expansion of macro 'ls0001_3' 4032 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4032:21: note: in expansion of macro 'ls0001_3' 4032 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4033:5: note: in expansion of macro 'ls0001_3' 4033 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4033:21: note: in expansion of macro 'ls0001_3' 4033 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4034:9: note: in expansion of macro 'ls0001_3' 4034 | if (ls0001_3.ialth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4035:9: note: in expansion of macro 'ls0001_3' 4035 | ls0001_3.ialth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4037:9: note: in expansion of macro 'ls0001_3' 4037 | if (ls0001_3.meth == lsa001_3.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:13: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:28: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:43: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4041:5: note: in expansion of macro 'ls0001_3' 4041 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4041:22: note: in expansion of macro 'ls0001_3' 4041 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4050:11: note: in expansion of macro 'ls0001_3' 4050 | i_1 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:9: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:30: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:48: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4055:5: note: in expansion of macro 'ls0001_3' 4055 | ls0001_3.nqnyh = ls0001_3.nq * *nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4055:22: note: in expansion of macro 'ls0001_3' 4055 | ls0001_3.nqnyh = ls0001_3.nq * *nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:5: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:19: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:33: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:50: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4057:5: note: in expansion of macro 'ls0001_3' 4057 | ls0001_3.el0 = ls0001_3.el[0]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4057:20: note: in expansion of macro 'ls0001_3' 4057 | ls0001_3.el0 = ls0001_3.el[0]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4058:5: note: in expansion of macro 'ls0001_3' 4058 | ls0001_3.conit = .5 / (doublereal) (ls0001_3.nq + 2); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4058:41: note: in expansion of macro 'ls0001_3' 4058 | ls0001_3.conit = .5 / (doublereal) (ls0001_3.nq + 2); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4073:9: note: in expansion of macro 'ls0001_3' 4073 | if (ls0001_3.h == ls0001_3.hold) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4073:23: note: in expansion of macro 'ls0001_3' 4073 | if (ls0001_3.h == ls0001_3.hold) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4076:10: note: in expansion of macro 'ls0001_3' 4076 | rh = ls0001_3.h / ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4076:23: note: in expansion of macro 'ls0001_3' 4076 | rh = ls0001_3.h / ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4077:5: note: in expansion of macro 'ls0001_3' 4077 | ls0001_3.h = ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4077:18: note: in expansion of macro 'ls0001_3' 4077 | ls0001_3.h = ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:21: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4085:17: note: in expansion of macro 'ls0001_3' 4085 | rh = min(rh,ls0001_3.rmax); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4085:17: note: in expansion of macro 'ls0001_3' 4085 | rh = min(rh,ls0001_3.rmax); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:39: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4097:9: note: in expansion of macro 'ls0001_3' 4097 | if (ls0001_3.meth == 2) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4104:34: note: in expansion of macro 'ls0001_3' 4104 | if (rh * pdh * 1.00001 < sm1[ls0001_3.nq - 1]) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4107:14: note: in expansion of macro 'ls0001_3' 4107 | rh = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4111:11: note: in expansion of macro 'ls0001_3' 4111 | i_1 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4114:15: note: in expansion of macro 'ls0001_3' 4114 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:5: note: in expansion of macro 'ls0001_3' 4120 | ls0001_3.h *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:5: note: in expansion of macro 'ls0001_3' 4121 | ls0001_3.rc *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4122:5: note: in expansion of macro 'ls0001_3' 4122 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4122:22: note: in expansion of macro 'ls0001_3' 4122 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4137:16: note: in expansion of macro 'ls0001_3' 4137 | if ((d_1 = ls0001_3.rc - 1., abs(d_1)) > ls0001_3.ccmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4137:46: note: in expansion of macro 'ls0001_3' 4137 | if ((d_1 = ls0001_3.rc - 1., abs(d_1)) > ls0001_3.ccmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4138:9: note: in expansion of macro 'ls0001_3' 4138 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4138:25: note: in expansion of macro 'ls0001_3' 4138 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:9: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:25: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:41: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4141:9: note: in expansion of macro 'ls0001_3' 4141 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4141:25: note: in expansion of macro 'ls0001_3' 4141 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:5: note: in expansion of macro 'ls0001_3' 4143 | ls0001_3.tn += ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:20: note: in expansion of macro 'ls0001_3' 4143 | ls0001_3.tn += ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4144:10: note: in expansion of macro 'ls0001_3' 4144 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4145:11: note: in expansion of macro 'ls0001_3' 4145 | i_2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4149:15: note: in expansion of macro 'ls0001_3' 4149 | i_1 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4156:22: note: in expansion of macro 'ls0001_3' 4156 | pnorm = vmnorm_(&ls0001_3.n, &yh1[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4170:11: note: in expansion of macro 'ls0001_3' 4170 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4175:20: note: in expansion of macro 'ls0001_3' 4175 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4176:7: note: in expansion of macro 'ls0001_3' 4176 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4177:9: note: in expansion of macro 'ls0001_3' 4177 | if (ls0001_3.ipup <= 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4189:5: note: in expansion of macro 'ls0001_3' 4189 | ls0001_3.ipup = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4190:5: note: in expansion of macro 'ls0001_3' 4190 | ls0001_3.rc = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4191:5: note: in expansion of macro 'ls0001_3' 4191 | ls0001_3.nslp = ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4191:21: note: in expansion of macro 'ls0001_3' 4191 | ls0001_3.nslp = ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4192:5: note: in expansion of macro 'ls0001_3' 4192 | ls0001_3.crate = .7; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4193:9: note: in expansion of macro 'ls0001_3' 4193 | if (ls0001_3.ierpj != 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4197:11: note: in expansion of macro 'ls0001_3' 4197 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4203:9: note: in expansion of macro 'ls0001_3' 4203 | if (ls0001_3.miter != 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4212:11: note: in expansion of macro 'ls0001_3' 4212 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4214:19: note: in expansion of macro 'ls0001_3' 4214 | savf[i] = ls0001_3.h * savf[i] - yh[i + (yh_dim1 << 1)]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4218:20: note: in expansion of macro 'ls0001_3' 4218 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4219:11: note: in expansion of macro 'ls0001_3' 4219 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4221:34: note: in expansion of macro 'ls0001_3' 4221 | y[i] = yh[i + yh_dim1] + ls0001_3.el[0] * savf[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4234:11: note: in expansion of macro 'ls0001_3' 4234 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4237:16: note: in expansion of macro 'ls0001_3' 4237 | y[i] = ls0001_3.h * savf[i] - (yh[i + (yh_dim1 << 1)] + acor[i]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4240:9: note: in expansion of macro 'ls0001_3' 4240 | if (ls0001_3.iersl < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4243:9: note: in expansion of macro 'ls0001_3' 4243 | if (ls0001_3.iersl > 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4246:20: note: in expansion of macro 'ls0001_3' 4246 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4247:11: note: in expansion of macro 'ls0001_3' 4247 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4251:34: note: in expansion of macro 'ls0001_3' 4251 | y[i] = yh[i + yh_dim1] + ls0001_3.el[0] * acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4268:31: note: in expansion of macro 'ls0001_3' 4268 | if (del <= pnorm * 100. * ls0001_3.uround) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4271:19: note: in expansion of macro 'ls0001_3' 4271 | if (m == 0 && ls0001_3.meth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4283:11: note: in expansion of macro 'ls0001_3' 4283 | d_1 = ls0001_3.crate * .2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4284:5: note: in expansion of macro 'ls0001_3' 4284 | ls0001_3.crate = max(d_1,rm); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4287:21: note: in expansion of macro 'ls0001_3' 4287 | d_1 = 1., d_2 = ls0001_3.crate * 1.5; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4288:34: note: in expansion of macro 'ls0001_3' 4288 | dcon = del * min(d_1,d_2) / (ls0001_3.tesco[ls0001_3.nq * 3 - 2] * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4288:49: note: in expansion of macro 'ls0001_3' 4288 | dcon = del * min(d_1,d_2) / (ls0001_3.tesco[ls0001_3.nq * 3 - 2] * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4289:13: note: in expansion of macro 'ls0001_3' 4289 | ls0001_3.conit); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4294:47: note: in expansion of macro 'ls0001_3' 4294 | d_2 = lsa001_3.pdest, d_3 = rate / (d_1 = ls0001_3.h * ls0001_3.el[0], | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4294:60: note: in expansion of macro 'ls0001_3' 4294 | d_2 = lsa001_3.pdest, d_3 = rate / (d_1 = ls0001_3.h * ls0001_3.el[0], | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4303:14: note: in expansion of macro 'ls0001_3' 4303 | if (m == ls0001_3.maxcor) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4310:20: note: in expansion of macro 'ls0001_3' 4310 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4311:7: note: in expansion of macro 'ls0001_3' 4311 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4323:9: note: in expansion of macro 'ls0001_3' 4323 | if (ls0001_3.miter == 0 || ls0001_3.jcur == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4323:32: note: in expansion of macro 'ls0001_3' 4323 | if (ls0001_3.miter == 0 || ls0001_3.jcur == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4326:5: note: in expansion of macro 'ls0001_3' 4326 | ls0001_3.icf = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4327:5: note: in expansion of macro 'ls0001_3' 4327 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4327:21: note: in expansion of macro 'ls0001_3' 4327 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4330:5: note: in expansion of macro 'ls0001_3' 4330 | ls0001_3.icf = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4332:5: note: in expansion of macro 'ls0001_3' 4332 | ls0001_3.rmax = 2.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4333:5: note: in expansion of macro 'ls0001_3' 4333 | ls0001_3.tn = told; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4334:10: note: in expansion of macro 'ls0001_3' 4334 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4335:11: note: in expansion of macro 'ls0001_3' 4335 | i_2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4339:15: note: in expansion of macro 'ls0001_3' 4339 | i_1 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4346:9: note: in expansion of macro 'ls0001_3' 4346 | if (ls0001_3.ierpj < 0 || ls0001_3.iersl < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4346:31: note: in expansion of macro 'ls0001_3' 4346 | if (ls0001_3.ierpj < 0 || ls0001_3.iersl < 0) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:28: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4352:16: note: in expansion of macro 'ls0001_3' 4352 | if (ncf == ls0001_3.mxncf) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4356:5: note: in expansion of macro 'ls0001_3' 4356 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4356:21: note: in expansion of macro 'ls0001_3' 4356 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4368:5: note: in expansion of macro 'ls0001_3' 4368 | ls0001_3.jcur = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4370:21: note: in expansion of macro 'ls0001_3' 4370 | dsm = del / ls0001_3.tesco[ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4370:36: note: in expansion of macro 'ls0001_3' 4370 | dsm = del / ls0001_3.tesco[ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:24: note: in expansion of macro 'ls0001_3' 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:57: note: in expansion of macro 'ls0001_3' 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4374:17: note: in expansion of macro 'ls0001_3' 4374 | ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4395:5: note: in expansion of macro 'ls0001_3' 4395 | ls0001_3.kflag = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4397:7: note: in expansion of macro 'ls0001_3' 4397 | ++ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4398:5: note: in expansion of macro 'ls0001_3' 4398 | ls0001_3.hu = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4398:19: note: in expansion of macro 'ls0001_3' 4398 | ls0001_3.hu = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4399:5: note: in expansion of macro 'ls0001_3' 4399 | ls0001_3.nqu = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4399:20: note: in expansion of macro 'ls0001_3' 4399 | ls0001_3.nqu = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4400:22: note: in expansion of macro 'ls0001_3' 4400 | lsa001_3.mused = ls0001_3.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4401:11: note: in expansion of macro 'ls0001_3' 4401 | i_2 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4403:15: note: in expansion of macro 'ls0001_3' 4403 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4406:36: note: in expansion of macro 'ls0001_3' 4406 | yh[i + j * yh_dim1] += ls0001_3.el[j - 1] * acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4413:9: note: in expansion of macro 'ls0001_3' 4413 | if (ls0001_3.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4438:9: note: in expansion of macro 'ls0001_3' 4438 | if (ls0001_3.nq > 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4441:30: note: in expansion of macro 'ls0001_3' 4441 | if (dsm > pnorm * 100. * ls0001_3.uround && lsa001_3.pdest != 0.) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:20: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4448:16: note: in expansion of macro 'ls0001_3' 4448 | nqm2 = min(ls0001_3.nq,lsa001_3.mxords); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:33: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4448:16: note: in expansion of macro 'ls0001_3' 4448 | nqm2 = min(ls0001_3.nq,lsa001_3.mxords); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4451:30: note: in expansion of macro 'ls0001_3' 4451 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4456:21: note: in expansion of macro 'ls0001_3' 4456 | rh1it = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4459:9: note: in expansion of macro 'ls0001_3' 4459 | if (ls0001_3.nq <= lsa001_3.mxords) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4466:20: note: in expansion of macro 'ls0001_3' 4466 | dm2 = vmnorm_(&ls0001_3.n, &yh[lm2p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4471:31: note: in expansion of macro 'ls0001_3' 4471 | dm2 = dsm * (lsa001_3.cm1[ls0001_3.nq - 1] / lsa001_3.cm2[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4471:63: note: in expansion of macro 'ls0001_3' 4471 | dm2 = dsm * (lsa001_3.cm1[ls0001_3.nq - 1] / lsa001_3.cm2[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4474:12: note: in expansion of macro 'ls0001_3' 4474 | nqm2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4484:5: note: in expansion of macro 'ls0001_3' 4484 | ls0001_3.meth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4485:5: note: in expansion of macro 'ls0001_3' 4485 | ls0001_3.miter = lsa001_3.jtyp; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4487:5: note: in expansion of macro 'ls0001_3' 4487 | ls0001_3.nq = nqm2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4488:5: note: in expansion of macro 'ls0001_3' 4488 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4488:18: note: in expansion of macro 'ls0001_3' 4488 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4504:30: note: in expansion of macro 'ls0001_3' 4504 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4505:28: note: in expansion of macro 'ls0001_3' 4505 | if (lsa001_3.mxordn >= ls0001_3.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4512:20: note: in expansion of macro 'ls0001_3' 4512 | dm1 = vmnorm_(&ls0001_3.n, &yh[lm1p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4517:31: note: in expansion of macro 'ls0001_3' 4517 | dm1 = dsm * (lsa001_3.cm2[ls0001_3.nq - 1] / lsa001_3.cm1[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4517:63: note: in expansion of macro 'ls0001_3' 4517 | dm1 = dsm * (lsa001_3.cm2[ls0001_3.nq - 1] / lsa001_3.cm1[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4520:12: note: in expansion of macro 'ls0001_3' 4520 | nqm1 = ls0001_3.nq; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4535:16: note: in expansion of macro 'ls0001_3' 4535 | if (dm1 <= ls0001_3.uround * 1e3 * pnorm) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4542:5: note: in expansion of macro 'ls0001_3' 4542 | ls0001_3.meth = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4543:5: note: in expansion of macro 'ls0001_3' 4543 | ls0001_3.miter = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4545:5: note: in expansion of macro 'ls0001_3' 4545 | ls0001_3.nq = nqm1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4546:5: note: in expansion of macro 'ls0001_3' 4546 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4546:18: note: in expansion of macro 'ls0001_3' 4546 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4552:7: note: in expansion of macro 'ls0001_3' 4552 | --ls0001_3.ialth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4553:9: note: in expansion of macro 'ls0001_3' 4553 | if (ls0001_3.ialth == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4556:9: note: in expansion of macro 'ls0001_3' 4556 | if (ls0001_3.ialth > 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4559:9: note: in expansion of macro 'ls0001_3' 4559 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4559:23: note: in expansion of macro 'ls0001_3' 4559 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4562:11: note: in expansion of macro 'ls0001_3' 4562 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4565:16: note: in expansion of macro 'ls0001_3' 4565 | yh[i + ls0001_3.lmax * yh_dim1] = acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4578:7: note: in expansion of macro 'ls0001_3' 4578 | --ls0001_3.kflag; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4579:5: note: in expansion of macro 'ls0001_3' 4579 | ls0001_3.tn = told; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4580:10: note: in expansion of macro 'ls0001_3' 4580 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4581:11: note: in expansion of macro 'ls0001_3' 4581 | i_1 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4585:15: note: in expansion of macro 'ls0001_3' 4585 | i_2 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4592:5: note: in expansion of macro 'ls0001_3' 4592 | ls0001_3.rmax = 2.; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:28: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4596:9: note: in expansion of macro 'ls0001_3' 4596 | if (ls0001_3.kflag <= -3) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4615:9: note: in expansion of macro 'ls0001_3' 4615 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4615:23: note: in expansion of macro 'ls0001_3' 4615 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4618:11: note: in expansion of macro 'ls0001_3' 4618 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4621:36: note: in expansion of macro 'ls0001_3' 4621 | savf[i] = acor[i] - yh[i + ls0001_3.lmax * yh_dim1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:20: note: in expansion of macro 'ls0001_3' 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:53: note: in expansion of macro 'ls0001_3' 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4624:13: note: in expansion of macro 'ls0001_3' 4624 | ls0001_3.nq * 3 - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4625:31: note: in expansion of macro 'ls0001_3' 4625 | exup = 1. / (doublereal) (ls0001_3.l + 1); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4628:30: note: in expansion of macro 'ls0001_3' 4628 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4631:9: note: in expansion of macro 'ls0001_3' 4631 | if (ls0001_3.nq == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:20: note: in expansion of macro 'ls0001_3' 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:36: note: in expansion of macro 'ls0001_3' 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4635:13: note: in expansion of macro 'ls0001_3' 4635 | ls0001_3.tesco[ls0001_3.nq * 3 - 3]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4635:28: note: in expansion of macro 'ls0001_3' 4635 | ls0001_3.tesco[ls0001_3.nq * 3 - 3]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4636:30: note: in expansion of macro 'ls0001_3' 4636 | exdn = 1. / (doublereal) ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4641:9: note: in expansion of macro 'ls0001_3' 4641 | if (ls0001_3.meth == 2) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4647:9: note: in expansion of macro 'ls0001_3' 4647 | if (ls0001_3.l < ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4647:22: note: in expansion of macro 'ls0001_3' 4647 | if (ls0001_3.l < ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4649:31: note: in expansion of macro 'ls0001_3' 4649 | d_1 = rhup, d_2 = sm1[ls0001_3.l - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4653:27: note: in expansion of macro 'ls0001_3' 4653 | d_1 = rhsm, d_2 = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4655:9: note: in expansion of macro 'ls0001_3' 4655 | if (ls0001_3.nq > 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4657:31: note: in expansion of macro 'ls0001_3' 4657 | d_1 = rhdn, d_2 = sm1[ls0001_3.nq - 2] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4673:12: note: in expansion of macro 'ls0001_3' 4673 | newq = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4677:12: note: in expansion of macro 'ls0001_3' 4677 | newq = ls0001_3.nq - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4679:9: note: in expansion of macro 'ls0001_3' 4679 | if (ls0001_3.kflag < 0 && rh > 1.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4684:12: note: in expansion of macro 'ls0001_3' 4684 | newq = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:9: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:21: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:52: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4690:11: note: in expansion of macro 'ls0001_3' 4690 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4697:5: note: in expansion of macro 'ls0001_3' 4697 | ls0001_3.ialth = 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4702:9: note: in expansion of macro 'ls0001_3' 4702 | if (ls0001_3.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4709:9: note: in expansion of macro 'ls0001_3' 4709 | if (ls0001_3.kflag == 0 && rh < 1.1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4713:9: note: in expansion of macro 'ls0001_3' 4713 | if (ls0001_3.kflag <= -2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4724:17: note: in expansion of macro 'ls0001_3' 4724 | if (newq == ls0001_3.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4728:5: note: in expansion of macro 'ls0001_3' 4728 | ls0001_3.nq = newq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4729:5: note: in expansion of macro 'ls0001_3' 4729 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4729:18: note: in expansion of macro 'ls0001_3' 4729 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4744:9: note: in expansion of macro 'ls0001_3' 4744 | if (ls0001_3.kflag == -10) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:11: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4751:5: note: in expansion of macro 'ls0001_3' 4751 | ls0001_3.h *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4752:11: note: in expansion of macro 'ls0001_3' 4752 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4757:20: note: in expansion of macro 'ls0001_3' 4757 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4758:7: note: in expansion of macro 'ls0001_3' 4758 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4759:11: note: in expansion of macro 'ls0001_3' 4759 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4762:34: note: in expansion of macro 'ls0001_3' 4762 | yh[i + (yh_dim1 << 1)] = ls0001_3.h * savf[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4764:5: note: in expansion of macro 'ls0001_3' 4764 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4764:21: note: in expansion of macro 'ls0001_3' 4764 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4765:5: note: in expansion of macro 'ls0001_3' 4765 | ls0001_3.ialth = 5; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4766:9: note: in expansion of macro 'ls0001_3' 4766 | if (ls0001_3.nq == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4769:5: note: in expansion of macro 'ls0001_3' 4769 | ls0001_3.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4770:5: note: in expansion of macro 'ls0001_3' 4770 | ls0001_3.l = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4780:5: note: in expansion of macro 'ls0001_3' 4780 | ls0001_3.kflag = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4783:5: note: in expansion of macro 'ls0001_3' 4783 | ls0001_3.kflag = -2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4786:5: note: in expansion of macro 'ls0001_3' 4786 | ls0001_3.kflag = -3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4789:5: note: in expansion of macro 'ls0001_3' 4789 | ls0001_3.rmax = 10.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4791:14: note: in expansion of macro 'ls0001_3' 4791 | r = 1. / ls0001_3.tesco[ls0001_3.nqu * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4791:29: note: in expansion of macro 'ls0001_3' 4791 | r = 1. / ls0001_3.tesco[ls0001_3.nqu * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4792:11: note: in expansion of macro 'ls0001_3' 4792 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4798:5: note: in expansion of macro 'ls0001_3' 4798 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4798:21: note: in expansion of macro 'ls0001_3' 4798 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4799:5: note: in expansion of macro 'ls0001_3' 4799 | ls0001_3.jstart = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'xerrwv_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:89:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 89 | #define eh0001_1 (*(struct eh0001_1_ *) &eh0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4964:9: note: in expansion of macro 'eh0001_1' 4964 | if (eh0001_1.mesflg == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:89:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 89 | #define eh0001_1 (*(struct eh0001_1_ *) &eh0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4969:11: note: in expansion of macro 'eh0001_1' 4969 | lun = eh0001_1.lunit; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'intdy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5463:24: note: in expansion of macro 'ls0001_2' 5463 | if (*k < 0 || *k > ls0001_2.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:10: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:24: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:38: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:64: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5467:13: note: in expansion of macro 'ls0001_2' 5467 | ls0001_2.hu); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5468:27: note: in expansion of macro 'ls0001_2' 5468 | if ((*t - tp) * (*t - ls0001_2.tn) > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5472:15: note: in expansion of macro 'ls0001_2' 5472 | s = (*t - ls0001_2.tn) / ls0001_2.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5472:30: note: in expansion of macro 'ls0001_2' 5472 | s = (*t - ls0001_2.tn) / ls0001_2.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5477:11: note: in expansion of macro 'ls0001_2' 5477 | jj1 = ls0001_2.l - *k; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5478:11: note: in expansion of macro 'ls0001_2' 5478 | i_1 = ls0001_2.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5485:11: note: in expansion of macro 'ls0001_2' 5485 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5488:29: note: in expansion of macro 'ls0001_2' 5488 | dky[i] = c * yh[i + ls0001_2.l * yh_dim1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5490:15: note: in expansion of macro 'ls0001_2' 5490 | if (*k == ls0001_2.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5493:11: note: in expansion of macro 'ls0001_2' 5493 | jb2 = ls0001_2.nq - *k; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5496:13: note: in expansion of macro 'ls0001_2' 5496 | j = ls0001_2.nq - jb; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5510:15: note: in expansion of macro 'ls0001_2' 5510 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5522:17: note: in expansion of macro 'ls0001_2' 5522 | r = pow_di(&ls0001_2.h, &i_1); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5523:11: note: in expansion of macro 'ls0001_2' 5523 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5540:13: note: in expansion of macro 'ls0001_2' 5540 | ls0001_2.tn, 0L); | ^~~~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:22:13: warning: 'RCSid' defined but not used [-Wunused-variable] 22 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'solsy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:15:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 15 | #define dgbsl_ csoda_dgbsl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:17:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 17 | #define dgesl_ csoda_dgesl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:17:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 17 | #define dgesl_ csoda_dgesl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'stoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4143 | ls0001_3.tn += ls0001_3.h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4143 | ls0001_3.tn += ls0001_3.h; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4156:13: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4156 | pnorm = vmnorm_(&ls0001_3.n, &yh1[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4218:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4218 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4246:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4246 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:15: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4466:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4466 | dm2 = vmnorm_(&ls0001_3.n, &yh[lm2p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4512:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4512 | dm1 = vmnorm_(&ls0001_3.n, &yh[lm1p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4751:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4751 | ls0001_3.h *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4120 | ls0001_3.h *= rh; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4120 | ls0001_3.h *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4121 | ls0001_3.rc *= rh; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4121 | ls0001_3.rc *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'prja_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3628:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3628 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3654 | ls0001_2.nfe += ls0001_2.n; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3654 | ls0001_2.nfe += ls0001_2.n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3712:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3712 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3756 | ls0001_2.nfe += mba; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3756 | ls0001_2.nfe += mba; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3760:23: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3760 | lsa001_2.pdnorm = bnorm_(&ls0001_2.n, &wm[3], &meband, &ml, &mu, &ewt[1]) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:14:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 14 | #define dgbfa_ csoda_dgbfa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:6: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3658:23: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3658 | lsa001_2.pdnorm = fnorm_(&ls0001_2.n, &wm[3], &ewt[1]) / abs(hl0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:16:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 16 | #define dgefa_ csoda_dgefa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:16:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 16 | #define dgefa_ csoda_dgefa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'intdy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'lsoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3382:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3382 | xerrwv_("lsoda-- istate = 3 and neq increased (i1 to i2) ", &c__50, & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3383 | c__5, &c__0, &c__2, &ls0001_1.n, &neq[1], &c__0, &c_b136, &c_b136, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3384 | 50L); | ~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2812 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:31: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3026 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3119:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3119 | xerrwv_(" at t = r1, tentative step size h = r2, step nst = i1 ", & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3120 | c__60, &c__107, &c__0, &c__1, &ls0001_1.nst, &c__0, &c__2, & | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3015 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ [ 71%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c: In function 'clsoda': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:52:20: warning: unused variable 'iout' [-Wunused-variable] 52 | static integer iout; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:44:13: warning: unused variable 'i' [-Wunused-variable] 44 | int i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:52:20: warning: 'iout' defined but not used [-Wunused-variable] 52 | static integer iout; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 71%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/deflate.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/deflate.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 72%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c: In function 'derivimplicit': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c:22:9: warning: unused variable 'i' [-Wunused-variable] 22 | int i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 72%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/scoperf.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/scoperf.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 72%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/euler.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/euler.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 72%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/expfit.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/expfit.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 72%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/exprand.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/exprand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 73%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2cmisc.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2cmisc.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 73%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/factoria.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/factoria.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 73%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:44:16: warning: 'laststep' defined but not used [-Wunused-variable] 44 | static Spline *laststep = SP0;/* the step list used on previous call */ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:42:16: warning: 'steplist' defined but not used [-Wunused-variable] 42 | static Spline *steplist = SP0; /* list of steps */ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:17:13: warning: 'RCSid' defined but not used [-Wunused-variable] 17 | static char RCSid[] = | ^~~~~ [ 73%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gauss.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gauss.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 73%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gear.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gear.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/getmem.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/getmem.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/harmonic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/harmonic.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/heun.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/heun.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/hyperbol.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/hyperbol.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/invert.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/invert.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/lag.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/lag.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/legendre.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/legendre.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/normrand.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/normrand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perpulse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perpulse.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perstep.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perstep.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisrand.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisrand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisson.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisson.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/praxis.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/praxis.c:123:16: warning: 'c__10' defined but not used [-Wunused-variable] 123 | static integer c__10 = 10; | ^~~~~ [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/pulse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/pulse.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/quad.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/quad.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ramp.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ramp.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revhyper.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revhyper.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsawto.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsawto.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsigmo.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsigmo.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/romberg.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/romberg.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/runge.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/runge.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sawtooth.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sawtooth.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/schedule.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/schedule.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/seidel.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/seidel.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sigmoid.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sigmoid.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sigmoid.c,v 1.2 1997/08/30 14:32:20 hines Exp" ; | ^~~~~ [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simeq.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simeq.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = "simeq.c,v 1.3 1999/01/04 12:46:51 hines Exp" ; | ^~~~~ [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simplex.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simplex.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c: In function '_cvode_sparse': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:247:16: warning: unused variable 'j' [-Wunused-variable] 247 | int i, j, ierr; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:76:25: warning: 'spar_prmat' defined but not used [-Wunused-function] 76 | # define prmat spar_prmat | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:342:13: note: in expansion of macro 'prmat' 342 | static void prmat() | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sparse.c,v 1.7 1998/03/12 13:17:17 hines Exp"; | ^~~~~ [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'create_sparseobj': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:142:10: warning: unused variable 'j' [-Wunused-variable] 142 | int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function '_vector_sparse': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:287:7: warning: unused variable 'zero' [-Wunused-variable] 287 | int zero = 0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'initeqn': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:565:11: warning: unused variable 'val' [-Wunused-variable] 565 | double *val; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'vec_spar_getelm': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:626:13: warning: unused variable '_ix' [-Wunused-variable] 626 | int _ix = 0; | ^~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:41:25: warning: 'vec_spar_prmat' defined but not used [-Wunused-function] 41 | # define prmat vec_spar_prmat | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:532:13: note: in expansion of macro 'prmat' 532 | static void prmat() | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:126:15: warning: 'd' defined but not used [-Wunused-variable] 126 | static double d; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:14:13: warning: 'RCSid' defined but not used [-Wunused-variable] 14 | static char RCSid[] = "vsparse.c,v 1.5 1999/01/04 12:46:53 hines Exp"; | ^~~~~ [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/spline.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/spline.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/squarewa.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/squarewa.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c: In function '_ss_derivimplicit': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c:90:18: warning: unused variable 'i' [-Wunused-variable] 90 | int err, i; | ^ [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/step.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/step.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/threshol.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/threshol.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/tridiag.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/tridiag.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c: In function '_cvode_sparse_thread': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:225:16: warning: unused variable 'j' [-Wunused-variable] 225 | int i, j, ierr; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c: In function 'free_elm': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:368:19: warning: unused variable 'elnext' [-Wunused-variable] 368 | Elm *el, *elnext; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:368:14: warning: unused variable 'el' [-Wunused-variable] 368 | Elm *el, *elnext; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:305:13: warning: 'prmat' defined but not used [-Wunused-function] 305 | static void prmat(SparseObj* so) { | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sparse.c,v 1.7 1998/03/12 13:17:17 hines Exp"; | ^~~~~ [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c:2: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_struct.h:29:13: warning: 'nrn_buildjacobian_thread' declared 'static' but never defined [-Wunused-function] 29 | static void nrn_buildjacobian_thread(NewtonSpace* ns, | ^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c: In function '_ss_derivimplicit_thread': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c:53:18: warning: unused variable 'i' [-Wunused-variable] 53 | int err, i; | ^ [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:80:13: warning: 'Translate' declared 'static' but never defined [-Wunused-function] 80 | static void Translate(); | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:82:13: warning: 'ExpandTranslationArrays' declared 'static' but never defined [-Wunused-function] 82 | static void ExpandTranslationArrays(); | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c: In function 'spPartition': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:606:25: warning: variable 'DoCmplxDirect' set but not used [-Wunused-but-set-variable] 606 | BOOLEAN *DoRealDirect, *DoCmplxDirect; | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:77:12: warning: 'FactorComplexMatrix' declared 'static' but never defined [-Wunused-function] 77 | static int FactorComplexMatrix(); | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c: In function 'spPrint': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:154:23: warning: variable 'pImagElements' set but not used [-Wunused-but-set-variable] 154 | ElementPtr pElement, pImagElements[PRINTER_WIDTH/10+1]; | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c: In function 'spFileVector': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:572:25: warning: unused variable 'Err' [-Wunused-variable] 572 | register int I, Size, Err; | ^~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:67:13: warning: 'SolveComplexMatrix' declared 'static' but never defined [-Wunused-function] 67 | static void SolveComplexMatrix(); | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:68:13: warning: 'SolveComplexTransposedMatrix' declared 'static' but never defined [-Wunused-function] 68 | static void SolveComplexTransposedMatrix(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: In function 'spDeterminant': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:997:22: warning: unused variable 'cDeterminant' [-Wunused-variable] 997 | ComplexNumber Pivot, cDeterminant; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:997:15: warning: unused variable 'Pivot' [-Wunused-variable] 997 | ComplexNumber Pivot, cDeterminant; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:22: warning: unused variable 'ni' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:18: warning: unused variable 'nr' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:12: warning: unused variable 'Norm' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: In function 'spLargestElement': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:1982:15: warning: unused variable 'cPivot' [-Wunused-variable] 1982 | ComplexNumber cPivot; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:85:13: warning: 'ScaleComplexMatrix' declared 'static' but never defined [-Wunused-function] 85 | static void ScaleComplexMatrix(); | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:86:13: warning: 'ComplexMatrixMultiply' declared 'static' but never defined [-Wunused-function] 86 | static void ComplexMatrixMultiply(); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:87:13: warning: 'ComplexTransposedMatrixMultiply' declared 'static' but never defined [-Wunused-function] 87 | static void ComplexTransposedMatrixMultiply(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:88:19: warning: 'ComplexCondition' declared 'static' but never defined [-Wunused-function] 88 | static RealNumber ComplexCondition(); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspalloc.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspalloc.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspbuild.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspbuild.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspfactor.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspfactor.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspoutput.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspoutput.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c: In function 'SolveComplexMatrix': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:290:25: warning: unused variable 'ExtVector' [-Wunused-variable] 290 | register ComplexVector ExtVector; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c: In function 'SolveComplexTransposedMatrix': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:608:26: warning: unused variable 'ExtVector' [-Wunused-variable] 608 | register ComplexVector ExtVector; | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c:2: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/csputils.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/csputils.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvband.c [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvbandpre.c [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvbbdpre.c [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvdense.c [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvdiag.c [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c: In function 'CVodeF': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c:326:21: warning: variable 'istop' set but not used [-Wunused-but-set-variable] 326 | booleantype iret, istop; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c: In function 'CVBBDPrecReInitB': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c:1125:9: warning: variable 'cvode_mem' set but not used [-Wunused-but-set-variable] 1125 | void *cvode_mem; | ^~~~~~~~~ [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVode': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:1371:18: warning: variable 'wrk2' set but not used [-Wunused-but-set-variable] 1371 | N_Vector wrk1, wrk2; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:1371:12: warning: variable 'wrk1' set but not used [-Wunused-but-set-variable] 1371 | N_Vector wrk1, wrk2; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVStgrNlsNewton': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:4693:15: warning: variable 'callSetup' set but not used [-Wunused-but-set-variable] 4693 | booleantype callSetup; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVStgr1NlsNewton': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:4966:15: warning: variable 'callSetup' set but not used [-Wunused-but-set-variable] 4966 | booleantype callSetup; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVsldet': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:5622:36: warning: variable 'rd3b' set but not used [-Wunused-but-set-variable] 5622 | realtype rd2a, rd2b, rd2c, rd3a, rd3b, cest1, corr1; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:5620:12: warning: variable 'small' set but not used [-Wunused-but-set-variable] 5620 | realtype small, tem, sqmax, saqk, qp, s, sqmaxk, saqj, sqmin; | ^~~~~ [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c: In function 'CVodeSetMinStep': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c:266:12: warning: variable 'hmax' set but not used [-Wunused-but-set-variable] 266 | realtype hmax; | ^~~~ [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvspgmr.c [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c: In function 'IDABand': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c:123:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 123 | int flag; | ^~~~ [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idabbdpre.c [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c: In function 'IDAStopTest2': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c:1343:7: warning: variable 'ier' set but not used [-Wunused-but-set-variable] 1343 | int ier; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c: In function 'IDAnls': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c:1631:15: warning: variable 'ier' set but not used [-Wunused-but-set-variable] 1631 | int retval, ier; | ^~~ [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c: In function 'IDADense': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c:115:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 115 | int flag; | ^~~~ [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaic.c [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaio.c [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c: In function 'IDASpgmr': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c:157:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 157 | int flag, maxl1; | ^~~~ [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/band.c [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/dense.c [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/iterative.c [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector.c [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_serial.c [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/smalldense.c [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/spgmr.c [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/sundialsmath.c [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c: In function 'nrnmpi_subworld_size': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c:264:13: warning: unused variable 'nb' [-Wunused-variable] 264 | int nb = nw / n; /* nrnmpi_numprocs_bbs */ | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c:55:12: warning: 'nrnmpi_is_setup_' defined but not used [-Wunused-variable] 55 | static int nrnmpi_is_setup_; | ^~~~~~~~~~~~~~~~ [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_enddata': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:208:29: warning: variable 'oldsize' set but not used [-Wunused-but-set-variable] 208 | int p, type, isize, oldsize; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'pack': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:234:27: warning: variable 'oldsize' set but not used [-Wunused-but-set-variable] 234 | int dsize, isize, oldsize; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_bbssendrecv': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:354:20: warning: unused variable 'status' [-Wunused-variable] 354 | MPI_Status status; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:353:13: warning: unused variable 'msgtag' [-Wunused-variable] 353 | int msgtag; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_probe': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:380:13: warning: unused variable 'flag' [-Wunused-variable] 380 | int flag = 0; | ^~~~ [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'nrnmpi_spike_exchange': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:96:26: warning: unused variable 'n1' [-Wunused-variable] 96 | int i, n, novfl, n1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:96:19: warning: unused variable 'novfl' [-Wunused-variable] 96 | int i, n, novfl, n1; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'MPI_Alltoallv_sparse.isra.0': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:301:12: warning: 'MPI_Waitall' accessing 1 byte in a region of size 0 [-Wstringop-overflow=] 301 | status = MPI_Waitall(n_requests, requests, MPI_STATUSES_IGNORE); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:301:12: note: referencing argument 3 of type 'struct MPI_Status *' In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi_impl.h:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:19: /usr/include/mpich-x86_64/mpi.h:955:5: note: in a call to function 'MPI_Waitall' 955 | int MPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status array_of_statuses[]) MPICH_API_PUBLIC; | ^~~~~~~~~~~ In function 'make_spike_type', inlined from 'nrnmpi_spike_initialize' at /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:59:2: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:45:9: warning: 's' may be used uninitialized [-Wmaybe-uninitialized] 45 | MPI_Get_address(&s, &addresses[0]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi_impl.h:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:19: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'nrnmpi_spike_initialize': /usr/include/mpich-x86_64/mpi.h:1300:5: note: by argument 1 of type 'const void *' to 'MPI_Get_address' declared here 1300 | int MPI_Get_address(const void *location, MPI_Aint *address) MPICH_API_PUBLIC; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:34:22: note: 's' declared here 34 | NRNMPI_Spike s; | ^ [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnrt.c [ 91%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DNRNCMAKE -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp: In function 'wchar_t* mywstrdup(char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp:194:7: warning: unused variable 'count' [-Wunused-variable] 194 | int count = mbstowcs(ws, s, sz + 1); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp: In function 'void nrnpython_start(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp:241:22: warning: unused variable 'gilsav' [-Wunused-variable] 241 | PyGILState_STATE gilsav = PyGILState_Ensure(); | ^~~~~~ [ 91%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'void eval_component(PyHocObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:880:7: warning: unused variable 'j' [-Wunused-variable] 880 | int j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'PyObject* hocpickle_setstate(PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:2684:11: warning: comparison of integer expressions of different signedness: 'Py_ssize_t' {aka 'long int'} and 'long unsigned int' [-Wsign-compare] 2684 | if (len != size * sizeof(double)) { | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'PyObject* iternext_sl(PyHocObject*, hoc_Item*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:1733:1: warning: control reaches end of non-void function [-Wreturn-type] 1733 | } | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:2836:20: warning: 'hocobj_members' defined but not used [-Wunused-variable] 2836 | static PyMemberDef hocobj_members[] = {{NULL, 0, 0, 0, NULL}}; | ^~~~~~~~~~~~~~ [ 91%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'int NPySecObj_init(NPySecObj*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:274:15: warning: unused variable 'cell' [-Wunused-variable] 274 | PyObject* cell = 0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* NPySecObj_pt3dremove(NPySecObj*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:543:11: warning: unused variable 'n' [-Wunused-variable] 543 | int i0, n; | ^ In file included from /usr/include/python3.9/Python.h:145, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.h:24, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* NPySecObj_psection(NPySecObj*)': /usr/include/python3.9/ceval.h:24:66: warning: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations] 24 | PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:814:24: note: in expansion of macro 'PyEval_CallObject' 814 | PyObject* result = PyEval_CallObject(nrnpy_psection, arglist); | ^~~~~~~~~~~~~~~~~ /usr/include/python3.9/ceval.h:17:43: note: declared here 17 | Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* pyseg_richcmp(NPySegObj*, PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:983:13: warning: unused variable 'pysec' [-Wunused-variable] 983 | PyObject* pysec; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:984:8: warning: unused variable 'result' [-Wunused-variable] 984 | bool result = false; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* pysec_richcmp(NPySecObj*, PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:996:13: warning: unused variable 'pysec' [-Wunused-variable] 996 | PyObject* pysec; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:997:8: warning: unused variable 'result' [-Wunused-variable] 997 | bool result = false; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* var_of_mech_next(NPyVarOfMechIter*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1685:16: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1685 | if (self->i_ >= self->msym_->s_varn) { | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'int segment_setattro(NPySegObj*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1847:9: warning: unused variable 'nseg' [-Wunused-variable] 1847 | int nseg; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* nrnpy_nrn()': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2286:7: warning: unused variable 'i' [-Wunused-variable] 2286 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'void nrnpy_reg_mech(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2455:17: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 2455 | for (i = 0; i < mf->sym->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2461:6: warning: 'void nrnpy_unreg_mech(int)' defined but not used [-Wunused-function] 2461 | void nrnpy_unreg_mech(int type) { | ^~~~~~~~~~~~~~~~ [ 91%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'char* pickle(PyObject*, size_t*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:667:21: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 667 | for (int i = 0; i < *size; ++i) { | ~~^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'PyObject* py_broadcast(PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:834:7: warning: unused variable 'np' [-Wunused-variable] 834 | int np = nrnmpi_numprocs; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'Object* py_alltoall_type(int, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:986:25: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 986 | for (int j = 0; j < sz; ++j) { | ~~^~~~ In file included from /usr/include/python3.9/pytime.h:6, from /usr/include/python3.9/Python.h:85, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.h:24, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:7: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'hpoasgn': /usr/include/python3.9/object.h:422:25: warning: 'poright' may be used uninitialized in this function [-Wmaybe-uninitialized] 422 | if (--op->ob_refcnt != 0) { | ~~~~~~~~~~~~~~~~^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:324:13: note: 'poright' was declared here 324 | PyObject* poright; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'py_alltoall_type': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:1051:23: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized] 1051 | nrnmpi_char_scatterv(s, scnt, sdispl, r, rcnt[0], root); | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 91%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'int ECS_insert(int, PyHocObject*, int, int, int, double, double, double, double, double, double, PyHocObject*, PyHocObject*, int, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:173:9: warning: unused variable 'i' [-Wunused-variable] 173 | int i = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void ics_set_grid_concentrations(int, int, int64_t*, int64_t*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:419:13: warning: unused variable 'j' [-Wunused-variable] 419 | ssize_t j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:420:13: warning: unused variable 'num_nodes' [-Wunused-variable] 420 | ssize_t num_nodes; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:423:9: warning: unused variable 'total_surface_nodes' [-Wunused-variable] 423 | int total_surface_nodes = nodes_per_seg_start_indices[n]; //nodes_per_seg_lengths has length n + 1 since it has a 0 as the first start index | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void ics_set_grid_currents(int, int, int64_t*, int64_t*, PyObject*, double*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:446:16: warning: unused variable 'j' [-Wunused-variable] 446 | ssize_t i, j, num_nodes; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:446:19: warning: unused variable 'num_nodes' [-Wunused-variable] 446 | ssize_t i, j, num_nodes; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:448:9: warning: unused variable 'total_surface_nodes' [-Wunused-variable] 448 | int total_surface_nodes = nodes_per_seg_start_indices[n]; //nodes_per_seg_lengths has length n + 1 since it has a 0 as the first start index | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'int remove(Grid_node**, Grid_node*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:586:9: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 586 | delete temp; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:596:5: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 596 | delete delete_me; | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void empty_list(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:620:9: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 620 | delete old_head; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'int Grid_node::insert(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:646:16: warning: unused variable 'grid' [-Wunused-variable] 646 | Grid_node* grid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:648:16: warning: variable 'save' set but not used [-Wunused-but-set-variable] 648 | Grid_node *save; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'virtual void ECS_Grid_node::do_grid_currents(double*, double, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:727:21: warning: unused variable 'c' [-Wunused-variable] 727 | Current_Triple* c; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'virtual void ICS_Grid_node::scatter_grid_concentrations()': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:1402:13: warning: variable 'my_states' set but not used [-Wunused-but-set-variable] 1402 | double* my_states; | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ [ 92%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void rxd_include_node_flux1D(int, long int*, double*, PyObject**)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:331:9: warning: unused variable 'i' [-Wunused-variable] 331 | int i; | ^ In file included from /usr/include/python3.9/Python.h:145, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:11, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void apply_node_flux(int, long int*, double*, PyObject**, double, double*)': /usr/include/python3.9/ceval.h:24:66: warning: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations] 24 | PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:376:26: note: in expansion of macro 'PyEval_CallObject' 376 | result = PyEval_CallObject(source[i], NULL); | ^~~~~~~~~~~~~~~~~ /usr/include/python3.9/ceval.h:17:43: note: declared here 17 | Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void ode_solve(double, double, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:636:29: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 636 | for(i = 0, j = 0; i < num_states; i++) | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:638:18: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare] 638 | if(i == zvi[j]) | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:661:29: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 661 | for(i = 0, j = 0; i < num_states; i++) | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:663:18: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare] 663 | if(i == zvi[j]) | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void setup_currents(int, int, int*, int*, double*, PyHocObject**, int*, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:726:28: warning: variable 'idx' set but not used [-Wunused-but-set-variable] 726 | int i, j, k, id, side, idx; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void get_reaction_rates(ICSReactions*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1820:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1820 | if(react->vptrs != NULL) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1823:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1823 | react->reaction(states_for_reaction, params_for_reaction, result_array, mc_mult, ecs_states_for_reaction, ecs_params_for_reaction, ecs_result, flux, v); | ^~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1210:13: warning: 'void free_SpeciesIndexList()' defined but not used [-Wunused-function] 1210 | static void free_SpeciesIndexList() | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'solve_reaction(ICSReactions*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1910:13: warning: 'ecs_params_for_reaction' may be used uninitialized in this function [-Wmaybe-uninitialized] 1910 | double* ecs_params_for_reaction; | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2111:54: warning: 'ecs_result_dx' may be used uninitialized in this function [-Wmaybe-uninitialized] 2111 | pd = (ecs_result_dx[jac_i] - ecs_result[jac_i])/dx; | ~~~~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2111:74: warning: 'ecs_result' may be used uninitialized in this function [-Wmaybe-uninitialized] 2111 | pd = (ecs_result_dx[jac_i] - ecs_result[jac_i])/dx; | ~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2084:63: warning: 'ecs_states_for_reaction_dx' may be used uninitialized in this function [-Wmaybe-uninitialized] 2084 | ecs_states_for_reaction_dx[i] += dx; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1983:48: warning: 'ecs_states_for_reaction' may be used uninitialized in this function [-Wmaybe-uninitialized] 1983 | ecs_states_for_reaction[i] = cvode_states[react->ecs_index[segment][i]]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2008:24: warning: 'mc_mult' may be used uninitialized in this function [-Wmaybe-uninitialized] 2008 | mc_mult[i] = react->mc_multiplier[i][segment]; | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 92%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'ReactGridData* create_threaded_reactions(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:256:30: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 256 | for(i = 0; i < react->region_size; i++) | ~~^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void* ecs_do_reactions(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:358:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 358 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:366:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 366 | for(k = 0; j < react->num_species_involved + react->num_params_involved; k++, j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:374:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 374 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:381:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 381 | for(k = 0; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:397:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 397 | for (j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:399:50: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 399 | for(k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:403:55: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 403 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:413:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 413 | for (j = 0; j < react->num_species_involved - 1; j ++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:415:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 415 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:418:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 418 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:430:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 430 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:439:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 439 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:511:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 511 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:517:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 517 | for(k = 0; j < react->num_species_involved + react->num_params_involved; k++, j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:523:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 523 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:530:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 530 | for(k = 0; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:546:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 546 | for (j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:548:50: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 548 | for(k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:552:55: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 552 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:562:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 562 | for (j = 0; j < react->num_species_involved - 1; j ++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:564:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 564 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:567:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 567 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:579:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 579 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:588:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 588 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void _rhs_variable_step_ecs(double, const double*, double*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:735:26: warning: unused variable 'orig_1d_states' [-Wunused-variable] 735 | double const * const orig_1d_states = states + _cvode_offset; | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:738:19: warning: unused variable 'orig_1d_ydot' [-Wunused-variable] 738 | double* const orig_1d_ydot = ydot + _cvode_offset; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void _rhs_variable_step_helper(Grid_node*, const double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:19: warning: unused variable 'bc_x' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:25: warning: unused variable 'bc_y' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:31: warning: unused variable 'bc_z' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:816:12: warning: unused variable 'bc' [-Wunused-variable] 816 | double bc; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:15:12: warning: 'int dg_adi(Grid_node*)' declared 'static' but never defined [-Wunused-function] 15 | static int dg_adi(Grid_node*); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function '_rhs_variable_step_helper(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:813:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 813 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'ics_ode_solve(double, double*, double const*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:993:16: warning: 'grid_size' may be used uninitialized in this function [-Wmaybe-uninitialized] 993 | RHS += grid_size; | ^~~~~~~~~ [ 92%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_find_deltas(long int, long int, long int, double*, long int*, long int*, double*, double, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:166:12: warning: unused variable 'dt' [-Wunused-variable] 166 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_find_deltas(long int, long int, long int, double*, long int*, long int*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:218:12: warning: unused variable 'dt' [-Wunused-variable] 218 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void* do_ics_deltas(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:267:12: warning: unused variable 'dt' [-Wunused-variable] 267 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_x_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:323:10: warning: unused variable 'N' [-Wunused-variable] 323 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_y_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:390:10: warning: unused variable 'N' [-Wunused-variable] 390 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_z_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:454:10: warning: unused variable 'N' [-Wunused-variable] 454 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_x(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:523:10: warning: unused variable 'N' [-Wunused-variable] 523 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_y(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:586:10: warning: unused variable 'N' [-Wunused-variable] 586 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_z(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:650:10: warning: unused variable 'N' [-Wunused-variable] 650 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void variable_step_delta(long int, long int, long int, double*, long int*, long int*, const double*, double, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:810:12: warning: variable 'prev_dc' set but not used [-Wunused-but-set-variable] 810 | double prev_dc, current_dc, next_dc; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:96:12: warning: 'int solve_dd_clhs_tridiag(int, double, double, double, double, double, double, double, double*, double*)' defined but not used [-Wunused-function] 96 | static int solve_dd_clhs_tridiag(const int N, const double l_diag, const double diag, | ^~~~~~~~~~~~~~~~~~~~~ [ 92%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:4: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp: In function '_rhs_variable_step_helper_tort(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:770:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 770 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp: In function '_rhs_variable_step_helper_vol(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:879:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 879 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_marching_cubes.c [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_llgramarea.c [ 93%] Linking CXX shared library ../../lib/libnrniv.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv_lib.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicxx -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,libnrniv.so.0.0.0 -o ../../lib/libnrniv.so.0.0.0 CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o CMakeFiles/nrniv_lib.dir/bbs.cpp.o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o CMakeFiles/nrniv_lib.dir/classreg.cpp.o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o CMakeFiles/nrniv_lib.dir/datapath.cpp.o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o CMakeFiles/nrniv_lib.dir/kschan.cpp.o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o CMakeFiles/nrniv_lib.dir/linmod.cpp.o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o CMakeFiles/nrniv_lib.dir/netpar.cpp.o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o CMakeFiles/nrniv_lib.dir/occvode.cpp.o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o CMakeFiles/nrniv_lib.dir/partrans.cpp.o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o CMakeFiles/nrniv_lib.dir/savstate.cpp.o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o CMakeFiles/nrniv_lib.dir/shape.cpp.o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o CMakeFiles/nrniv_lib.dir/singlech.cpp.o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o CMakeFiles/nrniv_lib.dir/symdir.cpp.o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsdirectmpi.cpp:35:7: warning: type 'struct KeepArgs' violates the C++ One Definition Rule [-Wodr] 35 | class KeepArgs : public std::map{}; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:25:7: note: a type with different bases is defined in another translation unit 25 | class KeepArgs : public std::map{}; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: warning: type 'struct OcSparseMatrix' violates the C++ One Definition Rule [-Wodr] 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: a different type is defined in another translation unit 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: the first difference of corresponding definitions is field 'm_' 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: a field of same name but different type is defined in another translation unit 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: type 'struct SPMAT' should match type 'void' 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:185:9: warning: type 'union ' violates the C++ One Definition Rule [-Wodr] 185 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:38:11: note: a different type is defined in another translation unit 38 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:188:12: note: the first difference of corresponding definitions is field 'pstr_' 188 | char** pstr_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:41:15: note: a field with different name is defined in another translation unit 41 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: warning: type 'struct PyHocObject' violates the C++ One Definition Rule [-Wodr] 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:57:3: note: a different type is defined in another translation unit 57 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:184:25: note: the first difference of corresponding definitions is field 'ho_' 184 | PyObject_HEAD Object* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:37:11: note: a field of same name but different type is defined in another translation unit 37 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: note: type 'struct Object' should match type 'void' 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:13: warning: type of 's_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: return value type mismatch 174 | int s_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: 's_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:23: warning: type of 'do_fio' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: return value type mismatch 184 | int do_fio() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: 'do_fio' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:33: warning: type of 'e_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: return value type mismatch 189 | int e_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: 'e_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:230:14: warning: type of 'oc_restore_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 230 | void oc_restore_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: type mismatch in parameter 5 445 | void oc_restore_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: 'oc_restore_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:229:14: warning: type of 'oc_save_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 229 | void oc_save_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: type mismatch in parameter 5 428 | void oc_save_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: 'oc_save_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:285:13: warning: type of 'nrn_threads_create' does not match original declaration [-Wlto-type-mismatch] 285 | extern void nrn_threads_create(int); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type mismatch in parameter 2 488 | void nrn_threads_create(int n, int parallel) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type 'int' should match type 'void' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: 'nrn_threads_create' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1864:6: warning: type of 'nrnthread_get_trajectory_requests' does not match original declaration [-Wlto-type-mismatch] 1864 | void nrnthread_get_trajectory_requests(int tid, int& bsize, int& ntrajec, void**& vpr, int*& types, int*& indices, double**& pvars, double**& varrays); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: type mismatch in parameter 9 5561 | void nrnthread_get_trajectory_requests(int tid, int& bsize, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: 'nrnthread_get_trajectory_requests' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:33:20: warning: 'nrnmpi_multisplit' violates the C++ One Definition Rule [-Wodr] 33 | extern int nrnmpi_multisplit(Section*, double x, int sid, int backbonestyle); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: return value type mismatch 310 | void nrnmpi_multisplit(Section* sec, double x, int sid, int backbone_style) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: type 'void' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: 'nrnmpi_multisplit' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: 'at_time' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrncvode.h:20:13: warning: type of 'nrn_random_play' does not match original declaration [-Wlto-type-mismatch] 20 | extern void nrn_random_play(NrnThread*); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: type mismatch in parameter 1 583 | void nrn_random_play() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: 'nrn_random_play' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'MPI_Alltoallv_sparse.isra': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:301:12: warning: 'MPI_Waitall' accessing 1 byte in a region of size 0 [-Wstringop-overflow=] 301 | status = MPI_Waitall(n_requests, requests, MPI_STATUSES_IGNORE); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:301:12: note: referencing argument 3 of type 'struct MPI_Status *' /usr/include/mpich-x86_64/mpi.h:955:5: note: in a call to function 'MPI_Waitall' 955 | int MPI_Waitall(int count, MPI_Request array_of_requests[], MPI_Status array_of_statuses[]) MPICH_API_PUBLIC; | ^ /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp:51:41: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 51 | bucketCount = new int[howManyBuckets]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'mk_cellgroups', inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:648:40: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 648 | cgs[i].output_ps = new PreSyn*[npre]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'mk_cgs_netcon_info', inlined from 'mk_cellgroups' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:722:21, inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:558:44: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 558 | cgs[i].netcons = new NetCon*[nccnt[i]+1]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'gapsolve': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] 619 | cmplx_spSolve(m_, rb-1, rx1-1, jb-1, jx1-1); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 2 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 3 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 4 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 5 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:135:1: note: in a call to function 'cmplx_spSolve' 135 | spSolve( eMatrix, RHS, Solution IMAG_VECTORS ) | ^ In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '__fgets_alias' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^ /usr/include/bits/stdio2.h:251:14: note: in a call to function '__fgets_alias' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:110:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 110 | implementPool(TQItemPool, TQItem) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp:12:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 12 | implementPool(HocEventPool, HocEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: In function 'nrnmpi_setup_transfer': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:837:41: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 837 | outsrc_buf_ = new double[szalloc]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:838:39: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 838 | poutsrc_ = new double*[szalloc]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'nrnthread_dat2_3.part.0': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1385:24: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1385 | delays = new double[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:302:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 302 | implementStructPool(SectionPool, Section) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:152:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 152 | DoubleArrayPool** p1 = new DoubleArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:153:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 153 | DatumArrayPool** p2 = new DatumArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:449:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 449 | implementPool(SelfEventPool, SelfEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'init_global': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1773:71: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1773 | ml->nodelist = new Node*[ml->nodecount]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp: In member function 'rate': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp:74:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 74 | int* s = new int[size]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2434:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2434 | smap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2435:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2435 | rmap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'v_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3144:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 3144 | sid0i = new int[nback]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'exchange_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:603:48: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 603 | MultiSplit** vec2ms = new MultiSplit*[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1226:57: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1226 | m.nd_rt_index_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1227:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1227 | m.nd_rt_index_th_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:811:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 811 | int* rthost = new int[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:708:40: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 708 | int* connects2short = new int[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'settype': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1456:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1456 | Symbol** ligands = new Symbol*[nligand_+1]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'setstructure': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1895:47: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1895 | gc_ = new KSGateComplex[ngate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1899:50: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1899 | trans_ = new KSTransition[ntrans_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1903:45: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1903 | state_ = new KSState[nstate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: '__builtin_strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^ cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E cmake_symlink_library ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 93%] Built target nrniv_lib /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/nrniv.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 93%] Building CXX object src/nrniv/CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++98 -o CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrnmain.cpp [ 93%] Building C object src/nrniv/CMakeFiles/nrniv.dir/__/oc/ockludge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ockludge.c [ 94%] Building C object src/nrniv/CMakeFiles/nrniv.dir/__/oc/modlreg.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/modlreg.c [ 94%] Linking CXX executable ../../bin/nrniv cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicxx -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -o ../../bin/nrniv ../../lib/libnrniv.so.0.0.0 -pthread -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 94%] Built target nrniv /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv/CMakeFiles/modlunit.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 95%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y: In function 'yyparse': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y:292:51: warning: unused variable 'd' [-Wunused-variable] 292 | {P1{Item *q; double d, unit_mag(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y:292:41: warning: unused variable 'q' [-Wunused-variable] 292 | {P1{Item *q; double d, unit_mag(); | ^ [ 95%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/lex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/lex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c:1471:16: warning: 'input' defined but not used [-Wunused-function] 1471 | #else | ^ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c:1428:17: warning: 'yyunput' defined but not used [-Wunused-function] 1428 | | ^ [ 95%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/consist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/consist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/consist.c [ 95%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/declare.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/declare.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/declare.c [ 95%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:18:30: warning: missing braces around initializer [-Wmissing-braces] 18 | } keywords[] = { | ^ 19 | "VERBATIM", VERBATIM, | { } 20 | "ENDVERBATIM", END_VERBATIM, /* explicit in lex.l */ | { } 21 | "COMMENT", COMMENT, | { } 22 | "ENDCOMMENT", END_COMMENT, /* explicit in lex.l */ | { } 23 | "TITLE", TITLE, | { } 24 | "CONSTANT", CONSTANT, | { } 25 | "PARAMETER", PARAMETER, | { } 26 | "INDEPENDENT", INDEPENDENT, | { } 27 | "ASSIGNED", ASSIGNED, | { } 28 | "INITIAL", INITIAL1, | { } 29 | "TERMINAL", TERMINAL, | { } 30 | "DERIVATIVE", DERIVATIVE, | { } 31 | "EQUATION", EQUATION, | { } 32 | "BREAKPOINT", BREAKPOINT, | { } 33 | "CONDUCTANCE", CONDUCTANCE, | { } 34 | "SOLVE", SOLVE, | { } 35 | "STATE", STATE, | { } 36 | "STEPPED", STEPPED, | { } 37 | "LINEAR", LINEAR, | { } 38 | "NONLINEAR", NONLINEAR, | { } 39 | "DISCRETE", DISCRETE, | { } 40 | "FUNCTION", FUNCTION1, | { } 41 | "FUNCTION_TABLE", FUNCTION_TABLE, | { } 42 | "PROCEDURE", PROCEDURE, | { } 43 | "PARTIAL", PARTIAL, | { } 44 | "INT", INT, | { } 45 | "DEL2", DEL2, | { } 46 | "DEL", DEL, | { } 47 | "LOCAL", LOCAL, | { } 48 | "METHOD", USING, | { } 49 | "STEADYSTATE", USING, | { } 50 | "SENS", SENS, | { } 51 | "STEP", STEP, | { } 52 | "WITH", WITH, | { } 53 | "FROM", FROM, | { } 54 | "TO", TO, | { } 55 | "BY", BY, | { } 56 | "if", IF, | { } 57 | "else", ELSE, | { } 58 | "while", WHILE, | { } 59 | "IF", IF, | { } 60 | "ELSE", ELSE, | { } 61 | "WHILE", WHILE, | { } 62 | "START", START1, | { } 63 | "DEFINE", DEFINE1, | { } 64 | 65 | "KINETIC", KINETIC, | { } 66 | "CONSERVE", CONSERVE, | { } 67 | "PLOT", PLOT, | { } 68 | "VS", VS, | { } 69 | "LAG", LAG, | { } 70 | "RESET", RESET, | { } 71 | "MATCH", MATCH, | { } 72 | "MODEL_LEVEL", MODEL_LEVEL, /* inserted by merge */ | { } 73 | "SWEEP", SWEEP, | { } 74 | "FIRST", FIRST, | { } 75 | "LAST", LAST, | { } 76 | "COMPARTMENT", COMPARTMENT, | { } 77 | "LONGITUDINAL_DIFFUSION", LONGDIFUS, | { } 78 | "PUTQ", PUTQ, | { } 79 | "GETQ", GETQ, | { } 80 | "IFERROR", IFERROR, | { } 81 | "SOLVEFOR", SOLVEFOR, | { } 82 | "UNITS", UNITBLK, | { } 83 | "UNITSON", UNITSON, | { } 84 | "UNITSOFF", UNITSOFF, | { } 85 | "TABLE", TABLE, | { } 86 | "DEPEND", DEPEND, | { } 87 | "NEURON", NEURON, | { } 88 | "SUFFIX", SUFFIX, | { } 89 | "POINT_PROCESS", SUFFIX, | { } 90 | "ARTIFICIAL_CELL", SUFFIX, | { } 91 | "NONSPECIFIC_CURRENT", NONSPECIFIC, | { } 92 | "ELECTRODE_CURRENT", ELECTRODE_CURRENT, | { } 93 | "USEION", USEION, | { } 94 | "READ", READ, | { } 95 | "WRITE", WRITE, | { } 96 | "RANGE", RANGE, | { } 97 | "SECTION", SECTION, | { } 98 | "VALENCE", VALENCE, | { } 99 | "GLOBAL", GLOBAL, | { } 100 | "POINTER", POINTER, | { } 101 | "BBCOREPOINTER", POINTER, | { } 102 | "EXTERNAL", EXTERNAL, | { } 103 | "INCLUDE", INCLUDE1, | { } 104 | "CONSTRUCTOR", CONSTRUCTOR, | { } 105 | "DESTRUCTOR", DESTRUCTOR, | { } 106 | "NET_RECEIVE", NETRECEIVE, | { } 107 | "BEFORE", BEFORE, /* before NEURON sets up cy' = f(y,t) */ | { } 108 | "AFTER", AFTER, /* after NEURON solves cy' = f(y, t) */ | { } 109 | "WATCH", WATCH, | { } 110 | "FOR_NETCONS", FOR_NETCONS, | { } 111 | "THREADSAFE", THREADSAFE, | { } 112 | "PROTECT", PROTECT, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:124:29: warning: missing braces around initializer [-Wmissing-braces] 124 | } special[] = { | ^ 125 | ";", SEMI, &semi, | { } 126 | "{", BEGINBLK, &beginblk, | { } 127 | "}", ENDBLK, &endblk, | { } 128 | 0, 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:135:29: warning: missing braces around initializer [-Wmissing-braces] 135 | } methods[] = { | ^ 136 | "adams", DERF | KINF, 0, | { } 137 | "runge", DERF | KINF, 0, | { } 138 | "euler", DERF | KINF, 0, | { } 139 | "adeuler", DERF | KINF, 1, | { } 140 | "heun", DERF | KINF, 0, | { } 141 | "adrunge", DERF | KINF, 1, | { } 142 | "newton", NLINF, 0, | { } 143 | "simplex", NLINF, 0, | { } 144 | "simeq", LINF, 0, | { } 145 | "seidel", LINF, 0, | { } 146 | "_advance", KINF, 0, | { } 147 | "sparse", KINF, 0, | { } 148 | "derivimplicit", DERF, 0, /* name hard wired in deriv.c */ | { } 149 | "cnexp", DERF, 0, | { } 150 | "clsoda", DERF | KINF, 0, /* Tolerance built in to | { } 151 | scopgear.c */ 152 | "after_cvode", 0, 0, | { } 153 | "cvode_t", 0, 0, | { } 154 | "cvode_t_v", 0, 0, | { } 155 | 0, 0, 0 | { 156 | }; | } [ 96%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/io.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/io.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/io.c [ 96%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/kinunit.c [ 96%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/list.c [ 96%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/model.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/model.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c: In function 'openfiles': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c:145:36: warning: '%s' directive writing up to 8191 bytes into a region of size 8187 [-Wformat-overflow=] 145 | sprintf(modprefix, "%s", argv[1]); | ^~~~ In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:3, from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c:27: /usr/include/bits/stdio2.h:38:10: note: '__sprintf_chk' output between 1 and 8192 bytes into a destination of size 8187 38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ [ 96%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/nrnunit.c [ 97%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/passn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/passn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/passn.c [ 97%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:4: /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c: In function 'lookup': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:27:30: warning: array subscript has type 'char' [-Wchar-subscripts] 27 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:25:38: note: in definition of macro 'ITERATE' 25 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:27:30: warning: array subscript has type 'char' [-Wchar-subscripts] 27 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:25:58: note: in definition of macro 'ITERATE' 25 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c: In function 'install': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:69:31: warning: array subscript has type 'char' [-Wchar-subscripts] 69 | sl = symlist[s[0]]; | ~^~~ [ 97%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/units.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/units.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:76:1: warning: missing braces around initializer [-Wmissing-braces] 76 | { | ^ 77 | 1e-18, "atto", | { } 78 | 1e-15, "femto", | { } 79 | 1e-12, "pico", | { } 80 | 1e-9, "nano", | { } 81 | 1e-6, "micro", | { } 82 | 1e-3, "milli", | { } 83 | 1e-2, "centi", | { } 84 | 1e-1, "deci", | { } 85 | 1e1, "deka", | { } 86 | 1e2, "hecta", | { } 87 | 1e2, "hecto", | { } 88 | 1e3, "kilo", | { } 89 | 1e6, "mega", | { } 90 | 1e6, "meg", | { } 91 | 1e9, "giga", | { } 92 | 1e12, "tera", | { } 93 | 0.0, 0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'pu': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:660:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 660 | if(u > 1) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 662 | return(2); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'unit_stk_clean': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'punit': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:185:34: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 185 | for (i=usp; i!=unit_stack-1; --i) { | ~~~~~~~~~~^~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'unit_init': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ [ 97%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/units1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/units1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units1.c [ 97%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/version.c [ 98%] Linking C executable ../../bin/modlunit cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/modlunit.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o CMakeFiles/modlunit.dir/__/modlunit/lex.c.o CMakeFiles/modlunit.dir/__/modlunit/consist.c.o CMakeFiles/modlunit.dir/__/modlunit/declare.c.o CMakeFiles/modlunit.dir/__/modlunit/init.c.o CMakeFiles/modlunit.dir/__/modlunit/io.c.o CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o CMakeFiles/modlunit.dir/__/modlunit/list.c.o CMakeFiles/modlunit.dir/__/modlunit/model.c.o CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o CMakeFiles/modlunit.dir/__/modlunit/passn.c.o CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o CMakeFiles/modlunit.dir/__/modlunit/units.c.o CMakeFiles/modlunit.dir/__/modlunit/units1.c.o CMakeFiles/modlunit.dir/__/modlunit/version.c.o -o ../../bin/modlunit make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 98%] Built target modlunit /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/hoc_module.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/constants.py /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/constants.py cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/demo /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/demo make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 98%] Built target hoc_module /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython/CMakeFiles/rxdmath.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Building C object src/nrnpython/CMakeFiles/rxdmath.dir/rxdmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/lib64/mpich/bin/mpicc -DHAVE_CONFIG_H -Drxdmath_EXPORTS -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/rxdmath.dir/rxdmath.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxdmath.c [ 99%] Linking C shared library ../../lib/librxdmath.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E cmake_link_script CMakeFiles/rxdmath.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicc -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,librxdmath.so.0.0.0 -o ../../lib/librxdmath.so.0.0.0 CMakeFiles/rxdmath.dir/rxdmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython && /usr/bin/cmake -E cmake_symlink_library ../../lib/librxdmath.so.0.0.0 ../../lib/librxdmath.so.0.0.0 ../../lib/librxdmath.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Built target rxdmath /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Nothing to be done for 'share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build'. make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Built target rxd_cython_generated /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/runpy.sh /usr/bin/python3.9 runpy /usr/bin/python3.9 + echo runpy /usr/bin/python3.9 + pyexe=/usr/bin/python3.9 + mingw= + shift + test x = x1 + /usr/bin/python3.9 setup.py build_ext --build-lib=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib/python running build_ext make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Built target rx3dextensions_0 /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[2]: Nothing to be done for 'share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build'. make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Built target rx3d /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/rxdmod.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/test/rxd && /usr/bin/cmake -E env NEURONHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn NRNHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich LD_LIBRARY_PATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib:/usr/lib64/mpich/lib PYTHONPATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib/python:/builddir/build/BUILD/nrn-7.8.1/test/rxd: /bin/bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nrnivmodl ./ecs which: no xcrun in (/usr/lib64/mpich/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin) /builddir/build/BUILD/nrn-7.8.1/test/rxd ls: cannot access './ecs/*.inc': No such file or directory ./ecs/pump.mod pump.mod make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> Compiling mod_func.c -> NMODL pump.mod cc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/include -fPIC -c mod_func.c -o mod_func.o MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/nrnunits.lib \ /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/bin/nocmodl pump.mod Translating pump.mod into pump.c Thread Safe -> Compiling x86_64/pump.c (cd .. ; cc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/include -fPIC -c x86_64/pump.c -o x86_64/pump.o) x86_64/pump.c:101:34: warning: missing braces around initializer [-Wmissing-braces] 101 | static VoidFunc hoc_intfunc[] = { | ^ 102 | "setdata_pump", _hoc_setdata, | { } 103 | 0, 0 | { 104 | }; | } x86_64/pump.c:114:44: warning: missing braces around initializer [-Wmissing-braces] 114 | static HocParmLimits _hoc_parm_limits[] = { | ^ 115 | 0,0,0 | { { 116 | }; | }} x86_64/pump.c:117:42: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmUnits _hoc_parm_units[] = { | ^ 118 | "imax_pump", "mA/cm2", | { } 119 | "Kd_pump", "mM", | { } 120 | "ix_pump", "mA/cm2", | { } 121 | "i_pump", "mA/cm2", | { } 122 | 0,0 | { 123 | }; | } x86_64/pump.c:125:33: warning: missing braces around initializer [-Wmissing-braces] 125 | static DoubScal hoc_scdoub[] = { | ^ 126 | "imax_pump", &imax_pump, | { } 127 | "Kd_pump", &Kd_pump, | { } 128 | 0,0 | { 129 | }; | } x86_64/pump.c:130:31: warning: missing braces around initializer [-Wmissing-braces] 130 | static DoubVec hoc_vdoub[] = { | ^ 131 | 0,0,0 | { 132 | }; | } x86_64/pump.c: In function '_pump_reg': x86_64/pump.c:182:13: warning: unused variable '_vectorized' [-Wunused-variable] 182 | int _vectorized = 1; | ^~~~~~~~~~~ x86_64/pump.c: In function 'initmodel': x86_64/pump.c:240:18: warning: unused variable '_save' [-Wunused-variable] 240 | int _i; double _save;{ | ^~~~~ x86_64/pump.c:240:7: warning: unused variable '_i' [-Wunused-variable] 240 | int _i; double _save;{ | ^~ x86_64/pump.c: In function '_nrn_jacob__pump': x86_64/pump.c:328:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ x86_64/pump.c:328:20: warning: unused variable '_ppvar' [-Wunused-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ x86_64/pump.c: In function '_initlists': x86_64/pump.c:359:6: warning: unused variable '_i' [-Wunused-variable] 359 | int _i; static int _first = 1; | ^~ x86_64/pump.c:358:21: warning: unused variable '_p' [-Wunused-variable] 358 | double _x; double* _p = &_x; | ^~ At top level: x86_64/pump.c:355:13: warning: 'terminal' defined but not used [-Wunused-function] 355 | static void terminal(){} | ^~~~~~~~ x86_64/pump.c:215:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 215 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ x86_64/pump.c:213:12: warning: '_ninits' defined but not used [-Wunused-variable] 213 | static int _ninits = 0; | ^~~~~~~ x86_64/pump.c:212:12: warning: 'error' defined but not used [-Wunused-variable] 212 | static int error; | ^~~~~ x86_64/pump.c:210:14: warning: 'modelname' defined but not used [-Wunused-variable] 210 | static char *modelname = ""; | ^~~~~~~~~ x86_64/pump.c:209:12: warning: '_reset' defined but not used [-Wunused-variable] 209 | static int _reset; | ^~~~~~ x86_64/pump.c:133:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 133 | static double _sav_indep; | ^~~~~~~~~~ => LINKING library x86_64/libnrnmech.so Mod files: pump.mod (cd .. ; g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -shared -fPIC -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -I /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/include -o x86_64/libnrnmech.so -Wl,-soname,libnrnmech.so \ x86_64/mod_func.o x86_64/pump.o -L/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib -lnrniv -Wl,-rpath,/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib -lreadline -lcurses -lform -lpython3 -lX11 -lXext) (cd .. ; rm -f x86_64/.libs/libnrnmech.so ; mkdir -p x86_64/.libs ; ln -s ../../x86_64/libnrnmech.so x86_64/.libs/libnrnmech.so) make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' Successfully created x86_64/special make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Built target rxdmod /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test/CMakeFiles/testneuron.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [ 99%] Building CXX object test/CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/test -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/oc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -o CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/test/unit_tests/unit_test.cpp [ 99%] Building CXX object test/CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test && /usr/lib64/mpich/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/test -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/oc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/test/unit_tests/oc/hoc_interpreter.cpp [100%] Linking CXX executable ../bin/test/testneuron cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/testneuron.dir/link.txt --verbose=1 /usr/lib64/mpich/bin/mpicxx -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -o ../bin/test/testneuron ../lib/libnrniv.so.0.0.0 -pthread -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/test && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' [100%] Built target testneuron make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/CMakeFiles 0 /usr/bin/make -f CMakeFiles/Makefile2 preinstall make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' make[1]: Nothing to be done for 'preinstall'. make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' Install the project... /usr/bin/cmake -P cmake_install.cmake -- Install configuration: "RelWithDebInfo" -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/shape.cm2 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/shape.cm1 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/prologue.id -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/nrnunits.lib.in -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/nrn.defaults.in -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hocload.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/wingroup.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/vplay.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/vecwrap.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/varmeth1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/thresh.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/subiter.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/stdrun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/stdlib.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/stdgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/singlech.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/single1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/single.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/showmech.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/shapebox.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/runfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/rcs.iv -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/rcs.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/prcellstate.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/pointman.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/pointgrp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/pointbsr.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/pcchdir.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/parcom.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/nrngui1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/nrngui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/noload.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netparmpi.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild/syntypes.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild/spkplot.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild/netready.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild/netgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild/netdata.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild/grstrlst.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild/edgegui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild/artcel.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/netbild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/treeview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/secanal.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/realcell.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/rcclasses.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/ppanal.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/parmvals.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/parmsets.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/ncview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/mviewxml.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/mviewgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/mview1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/distinctparm.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/distinct.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/artview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/allpp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/allcell.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/protorun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/optwrap.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/mulfit1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/fitparm.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/eparmlst.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/eonerun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/eoneprim.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/eonefunc.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/e_y.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/e_xy.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/e_norm.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/e_actpot.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/clampfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mulfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/movierun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/modlunit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mknrndll.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/mkcurve.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/macload.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/logax.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/loadbal.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/lincir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/lincir/linmech.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/lincir/lingraph.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/lincir/lincir1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/lincir/elmbase.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/lincir/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/lincir.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/kinbuild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/inserter.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/impratio.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/import3d -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/import3d/read_swc.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/import3d/read_nts.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/import3d/read_nlcda3.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/import3d/read_nlcda.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/import3d/read_morphml.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/import3d/import3d_sec.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/import3d/import3d_gui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/import3d/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/import3d.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/impedanx.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/impedanc.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/grapher.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/gatherv.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/funfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/family.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/electrod.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/corenrn.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/table.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/sigmoid.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/properties.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/linoid.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/kstrans.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/kstgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/ksstate.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/ksgate.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/kschanbg.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/gategui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/exp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/const.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/chanbild1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/chanbild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild/psubset.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild/inhomofn.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild/celtopol.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild/celset.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild/celmemb.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild/celmang.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild/celgeom.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild/celbild1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/celbild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/binfo.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/attshape.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/atoltool.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/hoc/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/helpdict -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/cleanup -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/auditscripts -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/auditscripts/saveaudit -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/auditscripts/retrieve.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/auditscripts/notes -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/auditscripts/hocaudit.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/auditscripts/gettarname -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/auditscripts/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/testca.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/sync -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/sync/synchronize.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/sync/start.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/sync/spkplot.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/sync/init.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/sync/demosync.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/sync/cell.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/sync/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/singhhchan.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/singhh.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/singhh.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/release.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/nachan.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/nacaex.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/mcna.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/khhchan.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/invlfire.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/capump.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/camchan.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/cachan1.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/cabpump.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/release.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/reconst.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/pyramid.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/pyramid.nrn -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/nomodel.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/hh.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/hh.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/dynclamp.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/dynclamp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/dynchan.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/dend3 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/dend3/syn3.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/dend3/dend3.nrn -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/dend3/control.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/dend3/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/dend3.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/demo.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/demo.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/d3init.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/cycle.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/demo/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/nrnunits.lib -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/nrn.defaults -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/lib/cleanup -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnpthread.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/spmatrix.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/spconfig.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/section.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/scoplib_ansi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/scoplib.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/options.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/ocmisc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/ocfunc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/oc_ansi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnredef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnran123.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnmpidec.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnmpi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnoc_ml.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnjava.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrniv_mf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnisaac.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrncvode.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnassrt.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnapi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrn_ansi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nmodlmutex.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/neuron.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/multisplit.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/multicore.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/membfunc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/membdef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/md2redef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/md1redef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/ivstream.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/hocparse.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/hoclist.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/hocgetsym.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/hocdec.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/hocassrt.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/hoc_membf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/hoc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/cspredef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/cspmatrix.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/cabvars.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnconf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrncvode -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrncvode/nrnneosm.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnmpiuse.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nrniv -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nocmodl -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/modlunit -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/libnrniv.so.0.0.0 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/libnrniv.so -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/share/nrn/nrnmain.cpp -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnmpiuse.h -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrncvode/nrnneosm.h -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/include/nrnconf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nrngui -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/neurondemo -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nrnivmodl -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nrnmech_makefile -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nrnpyenv.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/sortspike -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/mkthreadsafe -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nrnpyenv.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/set_nrnpyenv.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/librxdmath.so.0.0.0 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/librxdmath.so -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/python -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/python/neuron -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/python/neuron/rxd -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/python/neuron/rxd/geometry3d -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/python/neuron/rxd/geometry3d/setup.py -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/python/neuron/rxd/geometry3d/CMakeFiles -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/python/neuron/rxd/constants.py make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich' ~/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/src/nrnpython ~/build/BUILD/nrn-7.8.1 + RPM_LD_FLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib' + pushd x86_64-redhat-linux-gnu-mpich/src/nrnpython/ + CFLAGS=' -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib' + /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s' running build running build_py creating build creating build/lib.linux-x86_64-3.9 creating build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/__init__.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/coreneuron.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/doc.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/gui.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/hclass2.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/hclass3.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/nonvint_block_supervisor.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/psection.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/sections.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/units.py -> build/lib.linux-x86_64-3.9/neuron creating build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/neuroml/__init__.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/neuroml/biophysics.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/neuroml/metadata.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/neuroml/morphml.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/neuroml/neuroml.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/neuroml/rdxml.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/neuroml/xml2nrn.py -> build/lib.linux-x86_64-3.9/neuron/neuroml creating build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/tests/__init__.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/tests/_subclass.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/tests/test_all.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/tests/test_neuron.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/tests/test_rxd.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/tests/test_vector.py -> build/lib.linux-x86_64-3.9/neuron/tests creating build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/__init__.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/dimension3.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/export.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/generalizedReaction.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/gui.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/initializer.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/multiCompartmentReaction.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/node.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/nodelist.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/options.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/plugins.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/rangevar.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/rate.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/reaction.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/region.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/rxdException.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/rxdmath.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/rxdsection.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/section1d.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/species.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/rxd.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/constants.py -> build/lib.linux-x86_64-3.9/neuron/rxd creating build/lib.linux-x86_64-3.9/neuron/crxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/crxd/__init__.py -> build/lib.linux-x86_64-3.9/neuron/crxd creating build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/gui2/__init__.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/gui2/config.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/gui2/plotshape.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/gui2/rangevar.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/gui2/setup_threejs.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/gui2/utilities.py -> build/lib.linux-x86_64-3.9/neuron/gui2 creating build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry3d/FullJoinMorph.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry3d/GeneralizedVoxelization.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry3d/__init__.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry3d/scalarField.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry3d/simplevolume_helper.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry3d/surface.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry3d/surface_a.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry3d/triangularMesh.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry3d/voxelize.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/share/nrn/lib/python/neuron/rxd/geometry3d/voxelize2.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d running build_ext building 'neuron.hoc' extension creating build/temp.linux-x86_64-3.9 /usr/lib64/mpich/bin/mpicc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -DNRNCMAKE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I../oc -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/usr/include/python3.9 -c inithoc.cpp -o build/temp.linux-x86_64-3.9/inithoc.o /usr/lib64/mpich/bin/mpicxx -pthread -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection build/temp.linux-x86_64-3.9/inithoc.o -L/usr/lib64/mpich/lib -L/usr/include/../lib -L/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-mpich/lib -L/usr/lib64 -lnrniv -linterviews -o build/lib.linux-x86_64-3.9/neuron/hoc.cpython-39-x86_64-linux-gnu.so -Wl,-R/usr/lib64/mpich/lib -Wl,-R/usr/include/../lib + CFLAGS=' -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib' + /usr/bin/python3 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 --install-lib /usr/lib64/python3.9/site-packages/mpich running install running install_lib creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron copying build/lib.linux-x86_64-3.9/neuron/hoc.cpython-39-x86_64-linux-gnu.so -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/utilities.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/setup_threejs.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/rangevar.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/plotshape.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/config.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2 creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/crxd copying build/lib.linux-x86_64-3.9/neuron/crxd/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/crxd creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/voxelize2.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/voxelize.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/triangularMesh.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/surface_a.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/surface.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/simplevolume_helper.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/scalarField.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/GeneralizedVoxelization.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/FullJoinMorph.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/constants.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxd.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/species.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/section1d.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxdsection.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxdmath.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxdException.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/region.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/reaction.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rate.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rangevar.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/plugins.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/options.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/nodelist.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/node.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/multiCompartmentReaction.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/initializer.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/gui.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/generalizedReaction.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/export.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/dimension3.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_vector.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_rxd.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_neuron.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_all.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/_subclass.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/xml2nrn.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/rdxml.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/neuroml.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/morphml.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/metadata.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/biophysics.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/units.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron copying build/lib.linux-x86_64-3.9/neuron/sections.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron copying build/lib.linux-x86_64-3.9/neuron/psection.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron copying build/lib.linux-x86_64-3.9/neuron/nonvint_block_supervisor.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron copying build/lib.linux-x86_64-3.9/neuron/hclass3.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron copying build/lib.linux-x86_64-3.9/neuron/hclass2.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron copying build/lib.linux-x86_64-3.9/neuron/gui.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron copying build/lib.linux-x86_64-3.9/neuron/doc.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron copying build/lib.linux-x86_64-3.9/neuron/coreneuron.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron copying build/lib.linux-x86_64-3.9/neuron/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2/utilities.py to utilities.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2/setup_threejs.py to setup_threejs.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2/rangevar.py to rangevar.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2/plotshape.py to plotshape.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2/config.py to config.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui2/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/crxd/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d/voxelize2.py to voxelize2.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d/voxelize.py to voxelize.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d/triangularMesh.py to triangularMesh.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d/surface_a.py to surface_a.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d/surface.py to surface.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d/simplevolume_helper.py to simplevolume_helper.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d/scalarField.py to scalarField.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d/GeneralizedVoxelization.py to GeneralizedVoxelization.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry3d/FullJoinMorph.py to FullJoinMorph.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/constants.py to constants.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/rxd.py to rxd.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/species.py to species.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/section1d.py to section1d.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/rxdsection.py to rxdsection.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/rxdmath.py to rxdmath.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/rxdException.py to rxdException.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/region.py to region.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/reaction.py to reaction.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/rate.py to rate.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/rangevar.py to rangevar.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/plugins.py to plugins.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/options.py to options.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/nodelist.py to nodelist.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/node.py to node.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/multiCompartmentReaction.py to multiCompartmentReaction.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/initializer.py to initializer.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/gui.py to gui.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/geometry.py to geometry.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/generalizedReaction.py to generalizedReaction.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/export.py to export.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/dimension3.py to dimension3.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/rxd/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests/test_vector.py to test_vector.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests/test_rxd.py to test_rxd.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests/test_neuron.py to test_neuron.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests/test_all.py to test_all.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests/_subclass.py to _subclass.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/tests/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml/xml2nrn.py to xml2nrn.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml/rdxml.py to rdxml.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml/neuroml.py to neuroml.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml/morphml.py to morphml.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml/metadata.py to metadata.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml/biophysics.py to biophysics.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/neuroml/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/units.py to units.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/sections.py to sections.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/psection.py to psection.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/nonvint_block_supervisor.py to nonvint_block_supervisor.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/hclass3.py to hclass3.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/hclass2.py to hclass2.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/gui.py to gui.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/doc.py to doc.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/coreneuron.py to coreneuron.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/__init__.py to __init__.cpython-39.pyc writing byte-compilation script '/tmp/tmpac_5weqf.py' /usr/bin/python3 /tmp/tmpac_5weqf.py removing /tmp/tmpac_5weqf.py running install_data running install_egg_info Writing /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/NEURON-7.8-py3.9.egg-info + rm -rfv /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/__pycache__ + popd ~/build/BUILD/nrn-7.8.1 ~/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib ~/build/BUILD/nrn-7.8.1 + pushd /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/ + ln -sv ./libnrniv.so.0.0.0 libnrniv.so.0 'libnrniv.so.0' -> './libnrniv.so.0.0.0' + ln -sv ./librxdmath.so.0.0.0 librxdmath.so.0 'librxdmath.so.0' -> './librxdmath.so.0.0.0' ~/build/BUILD/nrn-7.8.1 + popd + rm -rfv /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/python/neuron/ removed '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/python/neuron/rxd/constants.py' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/python/neuron/rxd/geometry3d/CMakeFiles' removed '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/python/neuron/rxd/geometry3d/setup.py' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/python/neuron/rxd/geometry3d' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/python/neuron/rxd' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/python/neuron/' + find . /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/ -name '*.o' -exec rm -f '{}' ';' + find . /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/lib/ -name '*.la' -exec rm -f '{}' ';' + rm -rf /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/include/ivstream.h + rm -fv /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/share/nrn/libtool + '[' x_mpich '!=' x ']' + rm -rf /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/share/nrn/demo + pushd /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/mpich/bin/ ~/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin ~/build/BUILD/nrn-7.8.1 + sed -i s/nrniv/nrniv_mpich/g nrngui + sed -i -e s/nrniv/nrniv_mpich/g -e s/nrnmech_makefile/nrnmech_makefile_mpich/g -e s/nocmodl/nocmodl_mpich/g nrnivmodl + sed -i -e s/nocmodl/nocmodl_mpich/g nrnmech_makefile + sed -i -e s/nocmodl/nocmodl_mpich/g mkthreadsafe + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v modlunit modlunit_mpich renamed 'modlunit' -> 'modlunit_mpich' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v neurondemo neurondemo_mpich renamed 'neurondemo' -> 'neurondemo_mpich' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v nrngui nrngui_mpich renamed 'nrngui' -> 'nrngui_mpich' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v nrniv nrniv_mpich renamed 'nrniv' -> 'nrniv_mpich' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v sortspike sortspike_mpich renamed 'sortspike' -> 'sortspike_mpich' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v mkthreadsafe mkthreadsafe_mpich renamed 'mkthreadsafe' -> 'mkthreadsafe_mpich' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v nocmodl nocmodl_mpich renamed 'nocmodl' -> 'nocmodl_mpich' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v nrnivmodl nrnivmodl_mpich renamed 'nrnivmodl' -> 'nrnivmodl_mpich' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v nrnmech_makefile nrnmech_makefile_mpich renamed 'nrnmech_makefile' -> 'nrnmech_makefile_mpich' + mv -v nrnpyenv.sh nrnpyenv_mpich.sh renamed 'nrnpyenv.sh' -> 'nrnpyenv_mpich.sh' + mv -v set_nrnpyenv.sh set_nrnpyenv_mpich.sh renamed 'set_nrnpyenv.sh' -> 'set_nrnpyenv_mpich.sh' ~/build/BUILD/nrn-7.8.1 + popd + . /etc/profile.d/modules.sh ++ . /etc/profile.d/00-modulepath.sh +++ '[' -z /etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ']' +++ : ++ '[' -z '' ']' ++ LMOD_ALLOW_ROOT_USE=yes ++ '[' -n '' ']' ++ '[' yes '!=' yes ']' ++ '[' -z /usr/share/modulefiles ']' ++ findExec PS_CMD /usr/bin/ps ps ++ Nm=PS_CMD ++ confPath=/usr/bin/ps ++ execNm=ps ++ eval PS_CMD=/usr/bin/ps +++ PS_CMD=/usr/bin/ps ++ '[' '!' -x /usr/bin/ps ']' ++ unset Nm confPath execNm ++ findExec EXPR_CMD /usr/bin/expr expr ++ Nm=EXPR_CMD ++ confPath=/usr/bin/expr ++ execNm=expr ++ eval EXPR_CMD=/usr/bin/expr +++ EXPR_CMD=/usr/bin/expr ++ '[' '!' -x /usr/bin/expr ']' ++ unset Nm confPath execNm ++ findExec BASENAME_CMD /usr/bin/basename basename ++ Nm=BASENAME_CMD ++ confPath=/usr/bin/basename ++ execNm=basename ++ eval BASENAME_CMD=/usr/bin/basename +++ BASENAME_CMD=/usr/bin/basename ++ '[' '!' -x /usr/bin/basename ']' ++ unset Nm confPath execNm ++ unset -f findExec +++ /usr/bin/ps -p 53131 -ocomm= ++ my_shell=sh +++ /usr/bin/expr sh : '-*\(.*\)' ++ my_shell=sh +++ /usr/bin/basename sh ++ my_shell=sh ++ '[' -f /usr/share/lmod/lmod/init/sh ']' ++ . /usr/share/lmod/lmod/init/sh +++ LMOD_ROOT=/usr/share/lmod +++ LMOD_PKG=/usr/share/lmod/lmod +++ LMOD_DIR=/usr/share/lmod/lmod/libexec/ +++ LMOD_CMD=/usr/share/lmod/lmod/libexec/lmod +++ MODULESHOME=/usr/share/lmod/lmod +++ export LMOD_CMD +++ export LMOD_PKG +++ export LMOD_DIR +++ export MODULESHOME +++ export LMOD_DIR ++ unset my_shell PS_CMD EXPR_CMD BASENAME_CMD MODULEPATH_INIT LMOD_ALLOW_ROOT_USE + module unload mpi/mpich-x86_64 ++ /usr/share/lmod/lmod/libexec/lmod sh unload mpi/mpich-x86_64 + eval unset '__LMOD_REF_COUNT_LD_LIBRARY_PATH;' unset 'LD_LIBRARY_PATH;' unset '__LMOD_REF_COUNT_LOADEDMODULES;' unset 'LOADEDMODULES;' '__LMOD_REF_COUNT_MANPATH=/usr/share/lmod/lmod/share/man:1;' export '__LMOD_REF_COUNT_MANPATH;' 'MANPATH=/usr/share/lmod/lmod/share/man;' export 'MANPATH;' 'MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core;' export 'MODULEPATH;' unset 'MPI_BIN;' unset 'MPI_COMPILER;' unset 'MPI_FORTRAN_MOD_DIR;' unset 'MPI_HOME;' unset 'MPI_INCLUDE;' unset 'MPI_LIB;' unset 'MPI_MAN;' unset 'MPI_PYTHON2_SITEARCH;' unset 'MPI_PYTHON3_SITEARCH;' unset 'MPI_PYTHON_SITEARCH;' unset 'MPI_SUFFIX;' unset 'MPI_SYSCONFIG;' '__LMOD_REF_COUNT_PATH=/builddir/.local/bin:1\;/builddir/bin:1\;/usr/bin:1\;/bin:1\;/usr/sbin:1\;/sbin:1\;/usr/local/sbin:1;' export '__LMOD_REF_COUNT_PATH;' 'PATH=/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin;' export 'PATH;' '__LMOD_REF_COUNT_PKG_CONFIG_PATH=/usr/lib64/pkgconfig:1\;/usr/share/pkgconfig:1;' export '__LMOD_REF_COUNT_PKG_CONFIG_PATH;' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig;' export 'PKG_CONFIG_PATH;' unset '__LMOD_REF_COUNT__LMFILES_;' unset '_LMFILES_;' '_ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXt9LG1wYXRoQT17Ii9ldGMvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzIiwiL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eCIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvQ29yZSIsIi91c3Ivc2hhcmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0sWyJzeXN0ZW1CYXNlTVBBVEgiXT0iL2V0Yy9tb2R1bGVmaWxlczovdXNyL3NoYXJlL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvTGludXg6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9Db3JlOi91c3Ivc2hh;' export '_ModuleTable001_;' '_ModuleTable002_=cmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0=;' export '_ModuleTable002_;' '_ModuleTable_Sz_=2;' export '_ModuleTable_Sz_;' ++ unset __LMOD_REF_COUNT_LD_LIBRARY_PATH ++ unset LD_LIBRARY_PATH ++ unset __LMOD_REF_COUNT_LOADEDMODULES ++ unset LOADEDMODULES ++ __LMOD_REF_COUNT_MANPATH=/usr/share/lmod/lmod/share/man:1 ++ export __LMOD_REF_COUNT_MANPATH ++ MANPATH=/usr/share/lmod/lmod/share/man ++ export MANPATH ++ MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ++ export MODULEPATH ++ unset MPI_BIN ++ unset MPI_COMPILER ++ unset MPI_FORTRAN_MOD_DIR ++ unset MPI_HOME ++ unset MPI_INCLUDE ++ unset MPI_LIB ++ unset MPI_MAN ++ unset MPI_PYTHON2_SITEARCH ++ unset MPI_PYTHON3_SITEARCH ++ unset MPI_PYTHON_SITEARCH ++ unset MPI_SUFFIX ++ unset MPI_SYSCONFIG ++ __LMOD_REF_COUNT_PATH='/builddir/.local/bin:1;/builddir/bin:1;/usr/bin:1;/bin:1;/usr/sbin:1;/sbin:1;/usr/local/sbin:1' ++ export __LMOD_REF_COUNT_PATH ++ PATH=/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin ++ export PATH ++ __LMOD_REF_COUNT_PKG_CONFIG_PATH='/usr/lib64/pkgconfig:1;/usr/share/pkgconfig:1' ++ export __LMOD_REF_COUNT_PKG_CONFIG_PATH ++ PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig ++ export PKG_CONFIG_PATH ++ unset __LMOD_REF_COUNT__LMFILES_ ++ unset _LMFILES_ ++ _ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXt9LG1wYXRoQT17Ii9ldGMvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzIiwiL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eCIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvQ29yZSIsIi91c3Ivc2hhcmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0sWyJzeXN0ZW1CYXNlTVBBVEgiXT0iL2V0Yy9tb2R1bGVmaWxlczovdXNyL3NoYXJlL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvTGludXg6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9Db3JlOi91c3Ivc2hh ++ export _ModuleTable001_ ++ _ModuleTable002_=cmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0= ++ export _ModuleTable002_ ++ _ModuleTable_Sz_=2 ++ export _ModuleTable_Sz_ + . /etc/profile.d/modules.sh ++ . /etc/profile.d/00-modulepath.sh +++ '[' -z /etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ']' +++ : ++ '[' -z '' ']' ++ LMOD_ALLOW_ROOT_USE=yes ++ '[' -n '' ']' ++ '[' yes '!=' yes ']' ++ '[' -z /usr/share/modulefiles ']' ++ findExec PS_CMD /usr/bin/ps ps ++ Nm=PS_CMD ++ confPath=/usr/bin/ps ++ execNm=ps ++ eval PS_CMD=/usr/bin/ps +++ PS_CMD=/usr/bin/ps ++ '[' '!' -x /usr/bin/ps ']' ++ unset Nm confPath execNm ++ findExec EXPR_CMD /usr/bin/expr expr ++ Nm=EXPR_CMD ++ confPath=/usr/bin/expr ++ execNm=expr ++ eval EXPR_CMD=/usr/bin/expr +++ EXPR_CMD=/usr/bin/expr ++ '[' '!' -x /usr/bin/expr ']' ++ unset Nm confPath execNm ++ findExec BASENAME_CMD /usr/bin/basename basename ++ Nm=BASENAME_CMD ++ confPath=/usr/bin/basename ++ execNm=basename ++ eval BASENAME_CMD=/usr/bin/basename +++ BASENAME_CMD=/usr/bin/basename ++ '[' '!' -x /usr/bin/basename ']' ++ unset Nm confPath execNm ++ unset -f findExec +++ /usr/bin/ps -p 53131 -ocomm= ++ my_shell=sh +++ /usr/bin/expr sh : '-*\(.*\)' ++ my_shell=sh +++ /usr/bin/basename sh ++ my_shell=sh ++ '[' -f /usr/share/lmod/lmod/init/sh ']' ++ . /usr/share/lmod/lmod/init/sh +++ LMOD_ROOT=/usr/share/lmod +++ LMOD_PKG=/usr/share/lmod/lmod +++ LMOD_DIR=/usr/share/lmod/lmod/libexec/ +++ LMOD_CMD=/usr/share/lmod/lmod/libexec/lmod +++ MODULESHOME=/usr/share/lmod/lmod +++ export LMOD_CMD +++ export LMOD_PKG +++ export LMOD_DIR +++ export MODULESHOME +++ export LMOD_DIR ++ unset my_shell PS_CMD EXPR_CMD BASENAME_CMD MODULEPATH_INIT LMOD_ALLOW_ROOT_USE + module load mpi/openmpi-x86_64 ++ /usr/share/lmod/lmod/libexec/lmod sh load mpi/openmpi-x86_64 + eval '__LMOD_REF_COUNT_LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:1;' export '__LMOD_REF_COUNT_LD_LIBRARY_PATH;' 'LD_LIBRARY_PATH=/usr/lib64/openmpi/lib;' export 'LD_LIBRARY_PATH;' '__LMOD_REF_COUNT_LOADEDMODULES=mpi/openmpi-x86_64:1;' export '__LMOD_REF_COUNT_LOADEDMODULES;' 'LOADEDMODULES=mpi/openmpi-x86_64;' export 'LOADEDMODULES;' '__LMOD_REF_COUNT_MANPATH=/usr/share/man/openmpi-x86_64:1\;/usr/share/lmod/lmod/share/man:1;' export '__LMOD_REF_COUNT_MANPATH;' 'MANPATH=:/usr/share/man/openmpi-x86_64:/usr/share/lmod/lmod/share/man;' export 'MANPATH;' 'MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core;' export 'MODULEPATH;' 'MPI_BIN=/usr/lib64/openmpi/bin;' export 'MPI_BIN;' 'MPI_COMPILER=openmpi-x86_64;' export 'MPI_COMPILER;' 'MPI_FORTRAN_MOD_DIR=/usr/lib64/gfortran/modules/openmpi;' export 'MPI_FORTRAN_MOD_DIR;' 'MPI_HOME=/usr/lib64/openmpi;' export 'MPI_HOME;' 'MPI_INCLUDE=/usr/include/openmpi-x86_64;' export 'MPI_INCLUDE;' 'MPI_LIB=/usr/lib64/openmpi/lib;' export 'MPI_LIB;' 'MPI_MAN=/usr/share/man/openmpi-x86_64;' export 'MPI_MAN;' 'MPI_PYTHON3_SITEARCH=/usr/lib64/python3.9/site-packages/openmpi;' export 'MPI_PYTHON3_SITEARCH;' 'MPI_SUFFIX=_openmpi;' export 'MPI_SUFFIX;' 'MPI_SYSCONFIG=/etc/openmpi-x86_64;' export 'MPI_SYSCONFIG;' '__LMOD_REF_COUNT_PATH=/usr/lib64/openmpi/bin:1\;/builddir/.local/bin:1\;/builddir/bin:1\;/usr/bin:1\;/bin:1\;/usr/sbin:1\;/sbin:1\;/usr/local/sbin:1;' export '__LMOD_REF_COUNT_PATH;' 'PATH=/usr/lib64/openmpi/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin;' export 'PATH;' '__LMOD_REF_COUNT_PKG_CONFIG_PATH=/usr/lib64/openmpi/lib/pkgconfig:1\;/usr/lib64/pkgconfig:1\;/usr/share/pkgconfig:1;' export '__LMOD_REF_COUNT_PKG_CONFIG_PATH;' 'PKG_CONFIG_PATH=/usr/lib64/openmpi/lib/pkgconfig::/usr/lib64/pkgconfig:/usr/share/pkgconfig;' export 'PKG_CONFIG_PATH;' '__LMOD_REF_COUNT__LMFILES_=/usr/share/modulefiles/mpi/openmpi-x86_64:1;' export '__LMOD_REF_COUNT__LMFILES_;' '_LMFILES_=/usr/share/modulefiles/mpi/openmpi-x86_64;' export '_LMFILES_;' '_ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXttcGk9e1siZm4iXT0iL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9tcGkvb3Blbm1waS14ODZfNjQiLFsiZnVsbE5hbWUiXT0ibXBpL29wZW5tcGkteDg2XzY0IixbImxvYWRPcmRlciJdPTEscHJvcFQ9e30sWyJzdGFja0RlcHRoIl09MCxbInN0YXR1cyJdPSJhY3RpdmUiLFsidXNlck5hbWUiXT0ibXBpL29wZW5tcGkteDg2XzY0Iix9LH0sbXBhdGhBPXsiL2V0Yy9tb2R1bGVmaWxlcyIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzL0xpbnV4IiwiL3Vzci9zaGFy;' export '_ModuleTable001_;' '_ModuleTable002_=ZS9tb2R1bGVmaWxlcy9Db3JlIiwiL3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfSxbInN5c3RlbUJhc2VNUEFUSCJdPSIvZXRjL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXM6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eDovdXNyL3NoYXJlL21vZHVsZWZpbGVzL0NvcmU6L3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfQ==;' export '_ModuleTable002_;' '_ModuleTable_Sz_=2;' export '_ModuleTable_Sz_;' ++ __LMOD_REF_COUNT_LD_LIBRARY_PATH=/usr/lib64/openmpi/lib:1 ++ export __LMOD_REF_COUNT_LD_LIBRARY_PATH ++ LD_LIBRARY_PATH=/usr/lib64/openmpi/lib ++ export LD_LIBRARY_PATH ++ __LMOD_REF_COUNT_LOADEDMODULES=mpi/openmpi-x86_64:1 ++ export __LMOD_REF_COUNT_LOADEDMODULES ++ LOADEDMODULES=mpi/openmpi-x86_64 ++ export LOADEDMODULES ++ __LMOD_REF_COUNT_MANPATH='/usr/share/man/openmpi-x86_64:1;/usr/share/lmod/lmod/share/man:1' ++ export __LMOD_REF_COUNT_MANPATH ++ MANPATH=:/usr/share/man/openmpi-x86_64:/usr/share/lmod/lmod/share/man ++ export MANPATH ++ MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ++ export MODULEPATH ++ MPI_BIN=/usr/lib64/openmpi/bin ++ export MPI_BIN ++ MPI_COMPILER=openmpi-x86_64 ++ export MPI_COMPILER ++ MPI_FORTRAN_MOD_DIR=/usr/lib64/gfortran/modules/openmpi ++ export MPI_FORTRAN_MOD_DIR ++ MPI_HOME=/usr/lib64/openmpi ++ export MPI_HOME ++ MPI_INCLUDE=/usr/include/openmpi-x86_64 ++ export MPI_INCLUDE ++ MPI_LIB=/usr/lib64/openmpi/lib ++ export MPI_LIB ++ MPI_MAN=/usr/share/man/openmpi-x86_64 ++ export MPI_MAN ++ MPI_PYTHON3_SITEARCH=/usr/lib64/python3.9/site-packages/openmpi ++ export MPI_PYTHON3_SITEARCH ++ MPI_SUFFIX=_openmpi ++ export MPI_SUFFIX *** INSTALLING neuron-7.8.1-openmpi *** ++ MPI_SYSCONFIG=/etc/openmpi-x86_64 ++ export MPI_SYSCONFIG ++ __LMOD_REF_COUNT_PATH='/usr/lib64/openmpi/bin:1;/builddir/.local/bin:1;/builddir/bin:1;/usr/bin:1;/bin:1;/usr/sbin:1;/sbin:1;/usr/local/sbin:1' ++ export __LMOD_REF_COUNT_PATH ++ PATH=/usr/lib64/openmpi/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin ++ export PATH ++ __LMOD_REF_COUNT_PKG_CONFIG_PATH='/usr/lib64/openmpi/lib/pkgconfig:1;/usr/lib64/pkgconfig:1;/usr/share/pkgconfig:1' ++ export __LMOD_REF_COUNT_PKG_CONFIG_PATH ++ PKG_CONFIG_PATH=/usr/lib64/openmpi/lib/pkgconfig::/usr/lib64/pkgconfig:/usr/share/pkgconfig ++ export PKG_CONFIG_PATH ++ __LMOD_REF_COUNT__LMFILES_=/usr/share/modulefiles/mpi/openmpi-x86_64:1 ++ export __LMOD_REF_COUNT__LMFILES_ ++ _LMFILES_=/usr/share/modulefiles/mpi/openmpi-x86_64 ++ export _LMFILES_ ++ _ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXttcGk9e1siZm4iXT0iL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9tcGkvb3Blbm1waS14ODZfNjQiLFsiZnVsbE5hbWUiXT0ibXBpL29wZW5tcGkteDg2XzY0IixbImxvYWRPcmRlciJdPTEscHJvcFQ9e30sWyJzdGFja0RlcHRoIl09MCxbInN0YXR1cyJdPSJhY3RpdmUiLFsidXNlck5hbWUiXT0ibXBpL29wZW5tcGkteDg2XzY0Iix9LH0sbXBhdGhBPXsiL2V0Yy9tb2R1bGVmaWxlcyIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzL0xpbnV4IiwiL3Vzci9zaGFy ++ export _ModuleTable001_ ++ _ModuleTable002_=ZS9tb2R1bGVmaWxlcy9Db3JlIiwiL3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfSxbInN5c3RlbUJhc2VNUEFUSCJdPSIvZXRjL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXM6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eDovdXNyL3NoYXJlL21vZHVsZWZpbGVzL0NvcmU6L3Vzci9zaGFyZS9sbW9kL2xtb2QvbW9kdWxlZmlsZXMvQ29yZSIsfQ== ++ export _ModuleTable002_ ++ _ModuleTable_Sz_=2 ++ export _ModuleTable_Sz_ + export OMPI_MCA_rmaps_base_oversubscribe=1 + OMPI_MCA_rmaps_base_oversubscribe=1 + export MPI_COMPILE_TYPE=-openmpi + MPI_COMPILE_TYPE=-openmpi + export MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu-openmpi + MY_CMAKE_BUILDDIR=x86_64-redhat-linux-gnu-openmpi + echo + echo '*** INSTALLING neuron-7.8.1-openmpi ***' + echo + /usr/bin/make install DESTDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 'INSTALL=/usr/bin/install -p' -C x86_64-redhat-linux-gnu-openmpi make: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/cmake -S/builddir/build/BUILD/nrn-7.8.1 -B/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi --check-build-system CMakeFiles/Makefile.cmake 0 /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/CMakeFiles /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi//CMakeFiles/progress.marks /usr/bin/make -f CMakeFiles/Makefile2 all make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nocmodl.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/nocmodl.dir/build.make src/nrniv/CMakeFiles/nocmodl.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 0%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y: In function 'yyparse': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y:1127:48: warning: unused variable 'd' [-Wunused-variable] 1127 | {Item *q; double d, unit_mag(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parse1.y:1127:38: warning: unused variable 'q' [-Wunused-variable] 1127 | {Item *q; double d, unit_mag(); | ^ [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/diffeq.c [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/lex.c:1433:17: warning: 'yyunput' defined but not used [-Wunused-function] 1433 | | ^ [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/consist.c [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c: In function 'massagederiv': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/deriv.c:432:40: warning: unused variable 'solve_seen' [-Wunused-variable] 432 | int count = 0, deriv_implicit, solve_seen; | ^~~~~~~~~~ [ 1%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/discrete.c [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:16:30: warning: missing braces around initializer [-Wmissing-braces] 16 | } keywords[] = { | ^ 17 | "VERBATIM", VERBATIM, | { } 18 | "COMMENT", COMMENT, | { } 19 | "TITLE", MODEL, | { } 20 | "CONSTANT", CONSTANT, | { } 21 | "PARAMETER", PARAMETER, | { } 22 | "INDEPENDENT", INDEPENDENT, | { } 23 | "ASSIGNED", DEPENDENT, | { } 24 | "INITIAL", INITIAL1, | { } 25 | "TERMINAL", TERMINAL, | { } 26 | "DERIVATIVE", DERIVATIVE, | { } 27 | "EQUATION", EQUATION, | { } 28 | "BREAKPOINT", BREAKPOINT, | { } 29 | "CONDUCTANCE", CONDUCTANCE, | { } 30 | "SOLVE", SOLVE, | { } 31 | "STATE", STATE, | { } 32 | "STEPPED", STEPPED, | { } 33 | "LINEAR", LINEAR, | { } 34 | "NONLINEAR", NONLINEAR, | { } 35 | "DISCRETE", DISCRETE, | { } 36 | "FUNCTION", FUNCTION1, | { } 37 | "FUNCTION_TABLE", FUNCTION_TABLE, | { } 38 | "PROCEDURE", PROCEDURE, | { } 39 | "PARTIAL", PARTIAL, | { } 40 | "INT", INT, | { } 41 | "DEL2", DEL2, | { } 42 | "DEL", DEL, | { } 43 | "LOCAL", LOCAL, | { } 44 | "METHOD", USING, | { } 45 | "STEADYSTATE", USING, | { } 46 | "SENS", SENS, | { } 47 | "STEP", STEP, | { } 48 | "WITH", WITH, | { } 49 | "FROM", FROM, | { } 50 | "FORALL", FORALL1, | { } 51 | "TO", TO, | { } 52 | "BY", BY, | { } 53 | "if", IF, | { } 54 | "else", ELSE, | { } 55 | "while", WHILE, | { } 56 | "START", START1, | { } 57 | "DEFINE", DEFINE1, | { } 58 | 59 | "KINETIC", KINETIC, | { } 60 | "CONSERVE", CONSERVE, | { } 61 | "PLOT", PLOT, | { } 62 | "VS", VS, | { } 63 | "LAG", LAG, | { } 64 | "RESET", RESET, | { } 65 | "MATCH", MATCH, | { } 66 | "MODEL_LEVEL", MODEL_LEVEL, /* inserted by merge */ | { } 67 | "SWEEP", SWEEP, | { } 68 | "FIRST", FIRST, | { } 69 | "LAST", LAST, | { } 70 | "COMPARTMENT", COMPARTMENT, | { } 71 | "LONGITUDINAL_DIFFUSION", LONGDIFUS, | { } 72 | "PUTQ", PUTQ, | { } 73 | "GETQ", GETQ, | { } 74 | "IFERROR", IFERROR, | { } 75 | "SOLVEFOR", SOLVEFOR, | { } 76 | "UNITS", UNITS, | { } 77 | "UNITSON", UNITSON, | { } 78 | "UNITSOFF", UNITSOFF, | { } 79 | "TABLE", TABLE, | { } 80 | "DEPEND", DEPEND, | { } 81 | "NEURON", NEURON, | { } 82 | "SUFFIX", SUFFIX, | { } 83 | "POINT_PROCESS", SUFFIX, | { } 84 | "ARTIFICIAL_CELL", SUFFIX, | { } 85 | "NONSPECIFIC_CURRENT", NONSPECIFIC, | { } 86 | "ELECTRODE_CURRENT", ELECTRODE_CURRENT, | { } 87 | "SECTION", SECTION, | { } 88 | "RANGE", RANGE, | { } 89 | "USEION", USEION, | { } 90 | "READ", READ, | { } 91 | "WRITE", WRITE, | { } 92 | "VALENCE", VALENCE, | { } 93 | "CHARGE", VALENCE, | { } 94 | "GLOBAL", GLOBAL, | { } 95 | "POINTER", POINTER, | { } 96 | "BBCOREPOINTER", BBCOREPOINTER, | { } 97 | "EXTERNAL", EXTERNAL, | { } 98 | "INCLUDE", INCLUDE1, | { } 99 | "CONSTRUCTOR", CONSTRUCTOR, | { } 100 | "DESTRUCTOR", DESTRUCTOR, | { } 101 | "NET_RECEIVE", NETRECEIVE, | { } 102 | "BEFORE", BEFORE, /* before NEURON sets up cy' = f(y,t) */ | { } 103 | "AFTER", AFTER, /* after NEURON solves cy' = f(y, t) */ | { } 104 | "WATCH", WATCH, | { } 105 | "FOR_NETCONS", FOR_NETCONS, | { } 106 | "THREADSAFE", THREADSAFE, | { } 107 | "PROTECT", PROTECT, | { } 108 | "MUTEXLOCK", NRNMUTEXLOCK, | { } 109 | "MUTEXUNLOCK", NRNMUTEXUNLOCK, | { } 110 | "REPRESENTS", REPRESENTS, | { } 111 | 0, 0 | { 112 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:122:29: warning: missing braces around initializer [-Wmissing-braces] 122 | } special[] = { | ^ 123 | ";", SEMI, &semi, | { } 124 | "{", BEGINBLK, &beginblk, | { } 125 | "}", ENDBLK, &endblk, | { } 126 | 0, 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/init.c:133:29: warning: missing braces around initializer [-Wmissing-braces] 133 | } methods[] = { | ^ 134 | "adams", DERF | KINF, 0, | { } 135 | "runge", DERF | KINF, 0, | { } 136 | "euler", DERF | KINF, 0, | { } 137 | "adeuler", DERF | KINF, 1, | { } 138 | "heun", DERF | KINF, 0, | { } 139 | "adrunge", DERF | KINF, 1, | { } 140 | "gear", DERF | KINF, 1, | { } 141 | "newton", NLINF, 0, | { } 142 | "simplex", NLINF, 0, | { } 143 | "simeq", LINF, 0, | { } 144 | "seidel", LINF, 0, | { } 145 | "_advance", KINF, 0, | { } 146 | "sparse", KINF, 0, | { } 147 | "derivimplicit", DERF, 0, /* name hard wired in deriv.c */ | { } 148 | "cnexp", DERF, 0, /* see solve.c */ | { } 149 | "clsoda", DERF | KINF, 1, /* Tolerance built in to | { } 150 | scopgear.c */ 151 | "after_cvode", 0, 0, | { } 152 | "cvode_t", 0, 0, | { } 153 | "cvode_t_v", 0, 0, | { } 154 | 0, 0, 0 | { 155 | }; | } [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/io.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/io.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/io.c [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'flux': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:251:29: warning: unused variable 'isfunc' [-Wunused-variable] 251 | int isfunc; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'kinetic_implicit': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:706:30: warning: unused variable 'sparsedec' [-Wunused-variable] 706 | int i, nstate, flag, sparsedec, firsttrans, firsttrans1; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'massageconserve': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1024:15: warning: variable 'qv' set but not used [-Wunused-but-set-variable] 1024 | Item* qv; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'kinlist': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1160:15: warning: variable 'qv' set but not used [-Wunused-but-set-variable] 1160 | Item* qv; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c: In function 'single_channel': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1590:13: warning: variable 'nstate' set but not used [-Wunused-but-set-variable] 1590 | int nstate, i; | ^~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:1415:14: warning: 'astmt_last' defined but not used [-Wunused-variable] 1415 | static Item* astmt_last; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:120:12: warning: 'sparsedeclared' defined but not used [-Wunused-function] 120 | static int sparsedeclared(i) int i; { | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/kinetic.c:110:14: warning: 'instance_loop' defined but not used [-Wunused-function] 110 | static char* instance_loop() { | ^~~~~~~~~~~~~ [ 2%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/list.c [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.c:77:13: warning: 'pgm_name' defined but not used [-Wunused-variable] 77 | static char pgm_name[] = "nmodl"; | ^~~~~~~~ [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'parout': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:224:16: warning: unused variable 'j' [-Wunused-variable] 224 | int i, j, ioncount, pointercount, gind, emit_check_table_thread; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'decode_limits': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:1377:16: warning: unused variable 'd1' [-Wunused-variable] 1377 | double d1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'decode_tolerance': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:1404:16: warning: unused variable 'd1' [-Wunused-variable] 1404 | double d1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'cvode_rw_cur': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2537:17: warning: variable 'sion' set but not used [-Wunused-but-set-variable] 2537 | Symbol* sion; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'net_receive': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2566:16: warning: unused variable 'b' [-Wunused-variable] 2566 | int i, b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c: In function 'conductance_hint': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:2744:15: warning: unused variable 'q' [-Wunused-variable] 2744 | Item* q; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:180:12: warning: 'cvode_index' defined but not used [-Wunused-variable] 180 | static int cvode_index; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/nocpout.c:177:12: warning: 'cond_index' defined but not used [-Wunused-variable] 177 | static int cond_index; | ^~~~~~~~~~ [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/noccout.c [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'vectorize_scan_for_func': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:403:13: warning: unused variable 'b' [-Wunused-variable] 403 | int b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:402:19: warning: unused variable 'qq' [-Wunused-variable] 402 | Item* q, *qq; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'defarg': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:425:25: warning: unused variable 'q3' [-Wunused-variable] 425 | Item *q3, *q; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c: In function 'hocfunchack': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/parsact.c:959:15: warning: unused variable 'q' [-Wunused-variable] 959 | Item *q; | ^ [ 3%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c: In function 'general_discon_adjust': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/netrec_discon.c:158:7: warning: unused variable 'i' [-Wunused-variable] 158 | int i; | ^ [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/partial.c [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/sens.c [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/simultan.c [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c: In function 'whileloop': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/solve.c:393:15: warning: variable 'cp' set but not used [-Wunused-but-set-variable] 393 | char *cp=0; | ^~ [ 4%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:3: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c: In function 'lookup': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:25:30: warning: array subscript has type 'char' [-Wchar-subscripts] 25 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.h:110:38: note: in definition of macro 'ITERATE' 110 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:25:30: warning: array subscript has type 'char' [-Wchar-subscripts] 25 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/modl.h:110:58: note: in definition of macro 'ITERATE' 110 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c: In function 'install': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/symbol.c:65:31: warning: array subscript has type 'char' [-Wchar-subscripts] 65 | sl = symlist[s[0]]; | ~^~~ [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/units.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/units.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/units.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nmodl/units.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:76:1: warning: missing braces around initializer [-Wmissing-braces] 76 | { | ^ 77 | 1e-18, "atto", | { } 78 | 1e-15, "femto", | { } 79 | 1e-12, "pico", | { } 80 | 1e-9, "nano", | { } 81 | 1e-6, "micro", | { } 82 | 1e-3, "milli", | { } 83 | 1e-2, "centi", | { } 84 | 1e-1, "deci", | { } 85 | 1e1, "deka", | { } 86 | 1e2, "hecta", | { } 87 | 1e2, "hecto", | { } 88 | 1e3, "kilo", | { } 89 | 1e6, "mega", | { } 90 | 1e6, "meg", | { } 91 | 1e9, "giga", | { } 92 | 1e12, "tera", | { } 93 | 0.0, 0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'pu': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:660:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 660 | if(u > 1) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 662 | return(2); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'unit_stk_clean': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'punit': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:185:34: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 185 | for (i=usp; i!=unit_stack-1; --i) { | ~~~~~~~~~~^~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c: In function 'unit_init': /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/nmodl/../modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ [ 5%] Building C object src/nrniv/CMakeFiles/nocmodl.dir/__/nmodl/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DCVODE=1 -DNMODL=1 -DNOCMODL=1 -DVECTORIZE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nocmodl.dir/__/nmodl/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nmodl/version.c [ 5%] Linking C executable ../../bin/nocmodl cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nocmodl.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nocmodl.dir/__/nmodl/parse1.c.o CMakeFiles/nocmodl.dir/__/nmodl/diffeq.c.o CMakeFiles/nocmodl.dir/__/nmodl/lex.c.o CMakeFiles/nocmodl.dir/__/nmodl/consist.c.o CMakeFiles/nocmodl.dir/__/nmodl/deriv.c.o CMakeFiles/nocmodl.dir/__/nmodl/discrete.c.o CMakeFiles/nocmodl.dir/__/nmodl/init.c.o CMakeFiles/nocmodl.dir/__/nmodl/io.c.o CMakeFiles/nocmodl.dir/__/nmodl/kinetic.c.o CMakeFiles/nocmodl.dir/__/nmodl/list.c.o CMakeFiles/nocmodl.dir/__/nmodl/modl.c.o CMakeFiles/nocmodl.dir/__/nmodl/nocpout.c.o CMakeFiles/nocmodl.dir/__/nmodl/noccout.c.o CMakeFiles/nocmodl.dir/__/nmodl/parsact.c.o CMakeFiles/nocmodl.dir/__/nmodl/netrec_discon.c.o CMakeFiles/nocmodl.dir/__/nmodl/partial.c.o CMakeFiles/nocmodl.dir/__/nmodl/sens.c.o CMakeFiles/nocmodl.dir/__/nmodl/simultan.c.o CMakeFiles/nocmodl.dir/__/nmodl/solve.c.o CMakeFiles/nocmodl.dir/__/nmodl/symbol.c.o CMakeFiles/nocmodl.dir/__/nmodl/units.c.o CMakeFiles/nocmodl.dir/__/nmodl/version.c.o -o ../../bin/nocmodl make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Built target nocmodl /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/CMakeFiles/hh_update.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f CMakeFiles/hh_update.dir/build.make CMakeFiles/hh_update.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Update hh.mod for CoreNEURON compatibility sed "s/ RANGE minf/ GLOBAL minf/" /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.1 sed "s/ :TABLE minf/ TABLE minf/" /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.1 > /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.2 /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.2 /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod /usr/bin/cmake -E remove /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.1 /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/hh.mod.2 make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Built target hh_update /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 5%] Generating ../../../src/nrnoc/apcount.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c [ 6%] Generating ../../../src/nrnoc/exp2syn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c [ 6%] Generating ../../../src/nrnoc/expsyn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c [ 7%] Generating ../../../src/nrnoc/feature.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c Notice: VERBATIM blocks are not thread safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c [ 7%] Generating ../../../src/nrnoc/hh.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c [ 7%] Generating ../../../src/nrnoc/intfire1.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c [ 7%] Generating ../../../src/nrnoc/intfire2.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c [ 7%] Generating ../../../src/nrnoc/intfire4.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c [ 7%] Generating ../../../src/nrnoc/netstim.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c Notice: ARTIFICIAL_CELL is a synonym for POINT_PROCESS which hints that it only affects and is affected by discrete events. As such it is not located in a section and is not associated with an integrator Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c [ 7%] Generating ../../../src/nrnoc/oclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c [ 7%] Generating ../../../src/nrnoc/passive.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c [ 8%] Generating ../../../src/nrnoc/pattern.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c Notice: Use of POINTER is not thread safe. Notice: VERBATIM blocks are not thread safe Notice: ARTIFICIAL_CELL is a synonym for POINT_PROCESS which hints that it only affects and is affected by discrete events. As such it is not located in a section and is not associated with an integrator cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c [ 8%] Generating ../../../src/nrnoc/ppmark.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c [ 9%] Generating ../../../src/nrnoc/stim.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c [ 9%] Generating ../../../src/nrnoc/svclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c [ 9%] Generating ../../../src/nrnoc/syn.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c Thread Safe cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c [ 9%] Generating ../../../src/nrnoc/vclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E env MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.mod Translating /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.mod into /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c Notice: VERBATIM blocks are not thread safe Notice: LINEAR is not thread safe. cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && sed 's/_reg()/_reg_()/' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c > /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c.tmp cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && mv /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c.tmp /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nrniv_lib.dir/DependInfo.cmake --color= Scanning dependencies of target nrniv_lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv_lib.dir/build.make src/nrniv/CMakeFiles/nrniv_lib.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 9%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/apwindow.cpp [ 9%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/axis.cpp [ 9%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/bndedval.cpp [ 10%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/cbwidget.cpp [ 10%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/checkpnt.cpp [ 10%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/epsprint.cpp [ 10%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:38: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_real_radix2.c: In function 'int nrngsl_fft_real_radix2_transform(double*, size_t, size_t)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_real_radix2.c:91:7: warning: variable 'status' set but not used [-Wunused-but-set-variable] 91 | int status; | ^~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:39: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_hc_radix2.c: In function 'int nrngsl_fft_halfcomplex_radix2_transform(double*, size_t, size_t)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrngsl_hc_radix2.c:63:7: warning: variable 'status' set but not used [-Wunused-but-set-variable] 63 | int status; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp: In function 'void nrn_convlv(double*, long unsigned int, double*, long unsigned int, int, double*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:98:21: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 98 | for (i=1; i < n2; ++i) { | ~~^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:86:21: warning: unused variable 'x_' [-Wunused-variable] 86 | double scl, x_; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp: In function 'void nrn_spctrm(double*, double*, int, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:149:13: warning: variable 'ainv' set but not used [-Wunused-but-set-variable] 149 | double a, ainv, wfac, x_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/fourier.cpp:149:25: warning: unused variable 'x_' [-Wunused-variable] 149 | double a, ainv, wfac, x_; | ^~ [ 10%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'int LoadGIF(const char*, PICINFO*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:288:15: warning: variable 'ch' set but not used [-Wunused-but-set-variable] 288 | int ch, j, sbsize, cmtlen; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:156:22: warning: unused variable 'ch1' [-Wunused-variable] 156 | register byte ch, ch1, *origptr; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'int readImage(PICINFO*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:490:34: warning: unused variable 'picptr' [-Wunused-variable] 490 | register byte ch, ch1, *ptr1, *picptr; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:96:5: warning: 'BytesPerScanline' defined but not used [-Wunused-variable] 96 | BytesPerScanline, /* bytes per scanline in output raster */ | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp: In function 'gif_image(char const*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/gifimage.cpp:43:16: warning: 'image' may be used uninitialized in this function [-Wmaybe-uninitialized] 43 | return image; | ^~~~~ [ 11%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In function 'double ivoc_view_size(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:433:13: warning: unused variable 'i' [-Wunused-variable] 433 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'void Graph::ascii_save(std::ostream&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:1692:37: warning: unused variable 'j' [-Wunused-variable] 1692 | int j, jcnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'virtual void Graph::wholeplot(ivCoord&, ivCoord&, ivCoord&, ivCoord&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:1812:20: warning: unused variable 'gl' [-Wunused-variable] 1812 | GraphLine* gl; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'void Graph::cross_action(char, GPolyLine*, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:2064:22: warning: unused variable 'buf' [-Wunused-variable] 2064 | char buf[256]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp: In member function 'virtual void LineExtension::request(ivRequisition&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graph.cpp:3392:21: warning: unused variable 'eps' [-Wunused-variable] 3392 | const float eps = 1e-4; | ^~~ [ 11%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/graphvec.cpp [ 11%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grglyph.cpp [ 11%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp: In member function 'virtual void HocMark::pick(ivCanvas*, const ivAllocation&, int, ivHit&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp:147:23: warning: unused variable 'x' [-Wunused-variable] 147 | Coord x = h.left(), y = h.bottom(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/grmanip.cpp:147:37: warning: unused variable 'y' [-Wunused-variable] 147 | Coord x = h.left(), y = h.bottom(); | ^ [ 11%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/hocmark.cpp [ 12%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/htlist.cpp [ 12%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/idraw.cpp [ 12%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivoc.cpp [ 12%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp: In function 'bool nrn_optarg_on(const char*, int*, const char**)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:337:15: warning: unused variable 'a' [-Wunused-variable] 337 | char* a; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:332:13: warning: 'bool nrn_optarg_on(const char*, int*, char**)' declared 'static' but never defined [-Wunused-function] 332 | static bool nrn_optarg_on(const char* opt, int* argc, char** argv); | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:333:14: warning: 'char* nrn_optarg(const char*, int*, char**)' declared 'static' but never defined [-Wunused-function] 333 | static char* nrn_optarg(const char* opt, int* argc, char** argv); | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocmain.cpp:334:12: warning: 'int nrn_optargint(const char*, int*, char**, int)' declared 'static' but never defined [-Wunused-function] 334 | static int nrn_optargint(const char* opt, int* argc, char** argv, int dflt); | ^~~~~~~~~~~~~ [ 12%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:32: /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:93:8: warning: when initialized here [-Wreorder] 93 | inline RandomInteger::RandomInteger(long low, long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:99:8: warning: when initialized here [-Wreorder] 99 | inline RandomInteger::RandomInteger(long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:106:8: warning: when initialized here [-Wreorder] 106 | inline RandomInteger::RandomInteger(RNG *gen) | ^~~~~~~~~~~~~ [ 13%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_fread(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:445:12: note: in expansion of macro 'FRead' 445 | FRead(xs,sizeof(short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:454:12: note: in expansion of macro 'FRead' 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:460:12: note: in expansion of macro 'FRead' 460 | FRead(xf,sizeof(float),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:472:12: note: in expansion of macro 'FRead' 472 | FRead(xi,sizeof(unsigned short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:483:12: note: in expansion of macro 'FRead' 483 | FRead(xc,sizeof(char),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:418:15: warning: unused variable 's' [-Wunused-variable] 418 | void* s = (void*)(vp->vec()); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_vwrite(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:532:12: note: in expansion of macro 'FWrite' 532 | FWrite(xi,sizeof(int),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:541:12: note: in expansion of macro 'FWrite' 541 | FWrite(x,sizeof(double),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:551:12: note: in expansion of macro 'FWrite' 551 | FWrite(xf,sizeof(float),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:577:12: note: in expansion of macro 'FWrite' 577 | FWrite(x,sizeof(unsigned short),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:66:69: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 66 | #define FWrite(arg1,arg2,arg3,arg4) if (fwrite(arg1,arg2,arg3,arg4) != arg3){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~ 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:602:12: note: in expansion of macro 'FWrite' 602 | FWrite(x,sizeof(char),n,fp); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_vread(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:658:12: note: in expansion of macro 'FRead' 658 | FRead(xi,sizeof(int),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:668:12: note: in expansion of macro 'FRead' 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__elem(i),double) } | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:67:67: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 67 | #define FRead(arg1,arg2,arg3,arg4) if (fread(arg1,arg2,arg3,arg4) != arg3) {} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~ 68 | #endif | ~~~~~~ 69 | | 70 | static double dmaxint_; | ~~~~~~~~~~~~~~~~~~~~~~~ 71 | | 72 | // Definitions allow machine independent write and read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | // note that must include BYTEHEADER at head of routine | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | // The policy is that each machine vwrite binary information in | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 75 | // without swapping, ie. native endian. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 76 | // On reading, the type is checked to decide whether | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 77 | // byteswapping should be performed | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 78 | | 79 | #define BYTEHEADER int _II__; char *_IN__; char _OUT__[16]; int BYTESWAP_FLAG=0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 80 | #define BYTESWAP(_X__,_TYPE__) \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 81 | if (BYTESWAP_FLAG == 1) { \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 82 | _IN__ = (char *) &(_X__); \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:677:12: note: in expansion of macro 'FRead' 677 | FRead(xf,sizeof(float),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | } | ~ 682 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 683 | break; | ~~~~~~ 684 | } | ~ 685 | | 686 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 689 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 691 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 692 | | 693 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:694:12: note: in expansion of macro 'FRead' 694 | FRead(xi,sizeof(unsigned short),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:83:27: warning: comparison of integer expressions of different signedness: 'int' and 'long unsigned int' [-Wsign-compare] 83 | for (_II__=0;_II__ | ~~~~~~~~~~~~~~~~~~~~~ 92 | | 93 | // definition of random numer generator | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 94 | #include "random1.h" | ~~~~~~~~~~~~~~~~~~~~ 95 | #include | ~~~~~~~~~~~~~~~~~~~~ 96 | | 97 | // definition of comparison functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 98 | #include | ~~~~~~~~~~~~~~~~~~~ 99 | | 100 | #if HAVE_IV | ~~~~~~~~~~~ 101 | #include "utility.h" | ~~~~~~~~~~~~~~~~~~~~ 102 | #endif | ~~~~~~ 103 | #include "oc2iv.h" | ~~~~~~~~~~~~~~~~~~ 104 | #include "parse.h" | ~~~~~~~~~~~~~~~~~~ 105 | #include "ocfile.h" | ~~~~~~~~~~~~~~~~~~~ 106 | | 107 | extern "C" { | ~~~~~~~~~~~~ 108 | extern Object* hoc_thisobject; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 109 | extern Symlist* hoc_top_level_symlist; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | extern void nrn_exit(int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | IvocVect* (*nrnpy_vec_from_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | Object** (*nrnpy_vec_to_python_p_)(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | Object** (*nrnpy_vec_as_numpy_helper_)(int, double*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 114 | }; | ~~ 115 | | 116 | | 117 | int cmpfcn(double a, double b) { return ((a) <= (b))? (((a) == (b))? 0 : -1) : 1; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | | 120 | // math functions with error checking defined in oc/SRC/math.c | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 121 | extern "C" { | ~~~~~~~~~~~~ 122 | extern double hoc_Log(double x), hoc_Log10(double x), hoc_Exp(double x), hoc_Sqrt(double x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 123 | extern double hoc_scan(FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 124 | } | ~ 125 | | 126 | static int narg() { | ~~~~~~~~~~~~~~~~~~~ 127 | int i=0; | ~~~~~~~~ 128 | while (ifarg(i++)); | ~~~~~~~~~~~~~~~~~~~ 129 | return i-2; | ~~~~~~~~~~~ 130 | } | ~ 131 | | 132 | #define MAX_FIT_PARAMS 20 | ~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | | 134 | #define TWO_BYTE_HIGH 65535. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 135 | #define ONE_BYTE_HIGH 255. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | #define ONE_BYTE_HALF 128. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | | 138 | #define EPSILON 1e-9 | ~~~~~~~~~~~~~~~~~~~~ 139 | | 140 | extern "C" { | ~~~~~~~~~~~~ 141 | extern void notify_freed_val_array(double*, size_t); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 142 | extern void install_vector_method(const char* name, Pfrd_vp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 143 | extern int vector_instance_px(void*, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 144 | extern int vector_arg_px(int, double**); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | extern int nrn_mlh_gsort (double* vec, int *base_ptr, int total_elems, doubleComparator cmp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | }; | ~~ 147 | | 148 | extern "C" int hoc_return_type_code; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 149 | | 150 | IvocVect::IvocVect(Object* o) : ParentVect(){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 151 | IvocVect::IvocVect(int l, Object* o) : ParentVect(l){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 152 | IvocVect::IvocVect(int l, double fill_value, Object* o) : ParentVect(l, fill_value){obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 153 | IvocVect::IvocVect(IvocVect& v, Object* o) : ParentVect(v) {obj_ = o; label_ = NULL; MUTCONSTRUCT(0)} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 154 | | 155 | IvocVect::~IvocVect(){ | ~~~~~~~~~~~~~~~~~~~~~~ 156 | MUTDESTRUCT | ~~~~~~~~~~~ 157 | if (label_) { | ~~~~~~~~~~~~~ 158 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 159 | } | ~ 160 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 161 | } | ~ 162 | | 163 | void IvocVect::label(const char* label) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 164 | if (label_) { | ~~~~~~~~~~~~~ 165 | delete [] label_; | ~~~~~~~~~~~~~~~~~ 166 | label_ = NULL; | ~~~~~~~~~~~~~~ 167 | } | ~ 168 | if (label) { | ~~~~~~~~~~~~ 169 | label_ = new char[strlen(label) + 1]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | strcpy(label_, label); | ~~~~~~~~~~~~~~~~~~~~~~ 171 | } | ~ 172 | } | ~ 173 | | 174 | static const char* nullstr = ""; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | | 176 | static const char** v_label(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 177 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 178 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 179 | x->label(gargstr(1)); | ~~~~~~~~~~~~~~~~~~~~~ 180 | } | ~ 181 | if (x->label_) { | ~~~~~~~~~~~~~~~~ 182 | return (const char**)&x->label_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 183 | } | ~ 184 | return &nullstr; | ~~~~~~~~~~~~~~~~ 185 | } | ~ 186 | | 187 | static void same_err(const char* s, Vect* x, Vect* y) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | if (x == y) { | ~~~~~~~~~~~~~ 189 | hoc_execerror(s, " argument needs to be copied first"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | } | ~ 191 | } | ~ 192 | | 193 | /* the Vect->at(start, end) function was used in about a dozen places | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for the purpose of dealing with a subrange of elements. However that | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | function clones the subrange and returns a new Vect. This caused a | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | memory leak and was needlessly inefficient for those functions. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | To fix both problems for these specific functions | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | we use a special vector which does not have | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 199 | it's own space but merely a pointer and capacity to the right space of | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 200 | the original vector. The usage is restricted to only once at a time, i.e. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | can't use two subvecs at once and never do anything which affects the | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 202 | memory space. | ~~~~~~~~~~~~~ 203 | */ | ~~ 204 | | 205 | static IvocVect* subvec_; // allocated when registered. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 206 | IvocVect* IvocVect::subvec(int start, int end) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | subvec_->len = end - start + 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 208 | subvec_->s = s + start; | ~~~~~~~~~~~~~~~~~~~~~~~ 209 | return subvec_; | ~~~~~~~~~~~~~~~ 210 | } | ~ 211 | | 212 | void IvocVect::resize(int newlen) { // all that for this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | long oldcap = capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 214 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 215 | notify_freed_val_array(vec(), capacity()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | } | ~ 217 | ParentVect::resize(newlen); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | for (;oldcap < newlen; ++oldcap) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219 | elem(oldcap) = 0.; | ~~~~~~~~~~~~~~~~~~ 220 | } | ~ 221 | } | ~ 222 | | 223 | void IvocVect::resize_chunk(int newlen, int extra) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | if (newlen > space) { | ~~~~~~~~~~~~~~~~~~~~~ 225 | long x = newlen + extra; | ~~~~~~~~~~~~~~~~~~~~~~~~ 226 | if (extra == 0) { | ~~~~~~~~~~~~~~~~~ 227 | x = ListImpl_best_new_count(newlen, sizeof(double)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 228 | } | ~ 229 | // printf("resize_chunk %d\n", x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | resize(x); | ~~~~~~~~~~ 231 | } | ~ 232 | resize(newlen); | ~~~~~~~~~~~~~~~ 233 | } | ~ 234 | | 235 | #if HAVE_IV | ~~~~~~~~~~~ 236 | /*static*/ class GraphMarkItem : public GraphItem { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | public: | ~~~~~~~ 238 | GraphMarkItem(Glyph* g) : GraphItem(g){} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | virtual ~GraphMarkItem(){}; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | virtual void erase(Scene* s, GlyphIndex i, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (type & GraphItem::ERASE_LINE) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 242 | s->remove(i); | ~~~~~~~~~~~~~ 243 | } | ~ 244 | } | ~ 245 | }; | ~~ 246 | #endif | ~~~~~~ 247 | | 248 | static void* v_cons(Object* o) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | double fill_value = 0.; | ~~~~~~~~~~~~~~~~~~~~~~~ 250 | int n = 0; | ~~~~~~~~~~ 251 | Vect* vec; | ~~~~~~~~~~ 252 | if (ifarg(1)) { | ~~~~~~~~~~~~~~~ 253 | if (hoc_is_double_arg(1)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | n = int(chkarg(1,0,1e10)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 255 | if (ifarg(2)) fill_value = *getarg(2); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 256 | vec = new Vect(n,fill_value, o); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 257 | }else{ | ~~~~~~ 258 | if (!nrnpy_vec_from_python_p_) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 259 | hoc_execerror("Python not available", 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 260 | } | ~ 261 | vec = (*nrnpy_vec_from_python_p_)(new Vect(0, 0, o)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | } | ~ 263 | }else{ | ~~~~~~ 264 | vec = new Vect(0, 0, o); | ~~~~~~~~~~~~~~~~~~~~~~~~ 265 | } | ~ 266 | return vec; | ~~~~~~~~~~~ 267 | } | ~ 268 | | 269 | | 270 | static void v_destruct(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 271 | delete (Vect*)v; | ~~~~~~~~~~~~~~~~ 272 | } | ~ 273 | | 274 | static Symbol* svec_; | ~~~~~~~~~~~~~~~~~~~~~ 275 | | 276 | // extern "C" vector functions used by ocmatrix.dll | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 277 | // can also be used in mod files | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 278 | Vect* vector_new(int n, Object* o){return new Vect(n, o);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | Vect* vector_new0(){return new Vect();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | Vect* vector_new1(int n){return new Vect(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 281 | Vect* vector_new2(Vect* v){return new Vect(*v);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | void vector_delete(Vect* v){delete v;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 283 | int vector_buffer_size(Vect* v){return v->buffer_size();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 284 | int vector_capacity(Vect* v){return v->capacity();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 285 | void vector_resize(Vect* v, int n){v->resize(n);} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | Object** vector_temp_objvar(Vect* v){return v->temp_objvar();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | double* vector_vec(Vect* v){return v->vec();} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 288 | Object** vector_pobj(Vect* v){return &v->obj_;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 289 | char* vector_get_label(Vect* v) { return v->label_; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 290 | void vector_set_label(Vect* v, char* s) { v->label(s); } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 291 | void vector_append(Vect* v, double x){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | long n = v->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 293 | v->resize_chunk(n+1); | ~~~~~~~~~~~~~~~~~~~~~ 294 | v->elem(n) = x; | ~~~~~~~~~~~~~~~ 295 | } | ~ 296 | | 297 | #ifdef WIN32 | ~~~~~~~~~~~~ 298 | #if !defined(USEMATRIX) || USEMATRIX == 0 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 299 | #include "../windll/dll.h" | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | extern "C" {extern char* neuron_home;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | | 302 | void load_ocmatrix() { | ~~~~~~~~~~~~~~~~~~~~~~ 303 | struct DLL* dll = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~ 304 | char buf[256]; | ~~~~~~~~~~~~~~ 305 | sprintf(buf, "%s\\lib\\ocmatrix.dll", neuron_home); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | dll = dll_load(buf); | ~~~~~~~~~~~~~~~~~~~~ 307 | if (dll) { | ~~~~~~~~~~ 308 | Pfri mreg = (Pfri)dll_lookup(dll, "_Matrix_reg"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 309 | if (mreg) { | ~~~~~~~~~~~ 310 | (*mreg)(); | ~~~~~~~~~~ 311 | } | ~ 312 | }else{ | ~~~~~~ 313 | printf("No Matrix class.\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 314 | } | ~ 315 | } | ~ 316 | #endif | ~~~~~~ 317 | #endif | ~~~~~~ 318 | | 319 | Object** IvocVect::temp_objvar() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 320 | IvocVect* v = (IvocVect*)this; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 321 | Object** po; | ~~~~~~~~~~~~ 322 | if (v->obj_) { | ~~~~~~~~~~~~~~ 323 | po = hoc_temp_objptr(v->obj_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324 | }else{ | ~~~~~~ 325 | po = hoc_temp_objvar(svec_, (void*)v); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 326 | obj_ = *po; | ~~~~~~~~~~~ 327 | } | ~ 328 | return po; | ~~~~~~~~~~ 329 | } | ~ 330 | | 331 | extern "C" { // bug in cray compiler requires this | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 332 | void install_vector_method(const char* name, double (*f)(void*)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 333 | Symbol* s_meth; | ~~~~~~~~~~~~~~~ 334 | if (hoc_table_lookup(name, svec_->u.ctemplate->symtable)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | hoc_execerror(name, " already a method in the Vector class"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | s_meth = hoc_install(name, FUNCTION, 0.0, &svec_->u.ctemplate->symtable); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338 | s_meth->u.u_proc->defn.pfd = (Pfrd)f; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 339 | #define PUBLIC_TYPE 1 | ~~~~~~~~~~~~~~~~~~~~~ 340 | s_meth->cpublic = PUBLIC_TYPE; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | } | ~ 342 | } | ~ 343 | | 344 | int vector_instance_px(void* v, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 345 | Vect* x = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~ 346 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 347 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 348 | } | ~ 349 | | 350 | Vect* vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 351 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 352 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 353 | check_obj_type(ob, "Vector"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | } | ~ 355 | return (Vect*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 356 | } | ~ 357 | | 358 | int is_vector_arg(int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 359 | Object* ob = *hoc_objgetarg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 360 | if (!ob || ob->ctemplate != svec_->u.ctemplate) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | return 0; | ~~~~~~~~~ 362 | } | ~ 363 | return 1; | ~~~~~~~~~ 364 | } | ~ 365 | | 366 | int vector_arg_px(int i, double** px) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | Vect* x = vector_arg(i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 368 | *px = x->vec(); | ~~~~~~~~~~~~~~~ 369 | return x->capacity(); | ~~~~~~~~~~~~~~~~~~~~~ 370 | } | ~ 371 | | 372 | extern void nrn_vecsim_add(void*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 373 | extern void nrn_vecsim_remove(void*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | | 375 | static int possible_destvec(int arg, Vect*& dest) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | if (ifarg(arg) && hoc_is_object_arg(arg)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 377 | dest = vector_arg(arg); | ~~~~~~~~~~~~~~~~~~~~~~~ 378 | return arg+1; | ~~~~~~~~~~~~~ 379 | }else{ | ~~~~~~ 380 | dest = new Vect(); | ~~~~~~~~~~~~~~~~~~ 381 | return arg; | ~~~~~~~~~~~ 382 | } | ~ 383 | } | ~ 384 | | 385 | static double v_play_remove(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 386 | nrn_vecsim_remove(v); | ~~~~~~~~~~~~~~~~~~~~~ 387 | return 1.; | ~~~~~~~~~~ 388 | } | ~ 389 | | 390 | static double v_fwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 392 | void* s; | ~~~~~~~~ 393 | int x_max = vp->capacity()-1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | int start = 0; | ~~~~~~~~~~~~~~ 395 | int end = x_max; | ~~~~~~~~~~~~~~~~ 396 | hoc_return_type_code = 1; // integer | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 397 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 398 | start = int(chkarg(2,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 399 | end = int(chkarg(3,0,x_max)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 400 | } | ~ 401 | s = (void*)(&vp->elem(start)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | const char* x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 403 | | 404 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 406 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 408 | if (!fp) { | ~~~~~~~~~~ 409 | return 0.; | ~~~~~~~~~~ 410 | } | ~ 411 | int n = end-start+1; | ~~~~~~~~~~~~~~~~~~~~ 412 | BinaryMode(f); | ~~~~~~~~~~~~~~ 413 | return (double)fwrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | } | ~ 415 | | 416 | static double v_fread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 418 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 419 | | 420 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 421 | | 422 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 423 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | | 425 | if (ifarg(2)) vp->resize(int(chkarg(2,0,1e10))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 426 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 427 | | 428 | int type = 4; | ~~~~~~~~~~~~~ 429 | if (ifarg(3)) { | ~~~~~~~~~~~~~~~ 430 | type = int(chkarg(3,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | } | ~ 432 | | 433 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 434 | if (!fp) { | ~~~~~~~~~~ 435 | return 0.; | ~~~~~~~~~~ 436 | } | ~ 437 | | 438 | int i; | ~~~~~~ 439 | BinaryMode(f) | ~~~~~~~~~~~~~ 440 | if (n > 0) switch (type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 441 | | 442 | case 5: // short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 443 | { | ~ 444 | short *xs = (short *)malloc(n * (unsigned)sizeof(short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | FRead(xs,sizeof(short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 446 | for (i=0;ielem(i) = double(xs[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 448 | } | ~ 449 | free((char *)xs); | ~~~~~~~~~~~~~~~~~ 450 | break; | ~~~~~~ 451 | } | ~ 452 | | 453 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 454 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 455 | break; | ~~~~~~ 456 | | 457 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 458 | { | ~ 459 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 460 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 461 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 463 | } | ~ 464 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 465 | break; | ~~~~~~ 466 | } | ~ 467 | | 468 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 469 | { | ~ 470 | | 471 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 472 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 473 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | } | ~ 476 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 477 | break; | ~~~~~~ 478 | } | ~ 479 | | 480 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 481 | { | ~ 482 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (i=0;ielem(i) = double(xc[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | } | ~ 487 | free(xc); | ~~~~~~~~~ 488 | break; | ~~~~~~ 489 | } | ~ 490 | } | ~ 491 | return 1; | ~~~~~~~~~ 492 | } | ~ 493 | | 494 | static double v_vwrite(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 496 | | 497 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 498 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 499 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 500 | | 501 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 502 | if (!fp) { | ~~~~~~~~~~ 503 | return 0.; | ~~~~~~~~~~ 504 | } | ~ 505 | | 506 | BinaryMode(f) | ~~~~~~~~~~~~~ 507 | // first, write the size of the vector | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 508 | int n = vp->capacity(); | ~~~~~~~~~~~~~~~~~~~~~~~ 509 | FWrite(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 510 | | 511 | // next, write the type of elements | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 512 | int type = 4; | ~~~~~~~~~~~~~ 513 | if (ifarg(2)) { | ~~~~~~~~~~~~~~~ 514 | type = int(chkarg(2,1,5)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 515 | } | ~ 516 | FWrite(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 517 | | 518 | // convert the data if necessary | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 519 | int i; | ~~~~~~ 520 | void *s; | ~~~~~~~~ 521 | const char* x; | ~~~~~~~~~~~~~~ 522 | | 523 | double min,r,sf,sub,intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | switch (type) { | ~~~~~~~~~~~~~~~ 525 | | 526 | case 5: // integers as ints (no scaling) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 527 | { | ~ 528 | int* xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 529 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 531 | } | ~ 532 | FWrite(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 533 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 534 | break; | ~~~~~~ 535 | } | ~ 536 | | 537 | case 4: // doubles (no conversion unless BYTESWAP used and needed) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 538 | { | ~ 539 | s = (void*)(&(vp->elem(0))); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 541 | FWrite(x,sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 542 | break; | ~~~~~~ 543 | } | ~ 544 | | 545 | case 3: // float (simple automatic type conversion) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 546 | { | ~ 547 | float* xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 548 | for (i=0;ielem(i)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 550 | } | ~ 551 | FWrite(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 552 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 553 | break; | ~~~~~~ 554 | } | ~ 555 | | 556 | | 557 | case 2: // short ints (scale to 16 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | { | ~ 559 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 560 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 561 | if (r > 0) { | ~~~~~~~~~~~~ 562 | sf = TWO_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 563 | } else { | ~~~~~~~~ 564 | sf = 1.; | ~~~~~~~~ 565 | } | ~ 566 | unsigned short* xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | for (i=0;ielem(i)-min)*sf; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 569 | xi[i] = (unsigned short)intermed; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 570 | } | ~ 571 | s = (void*)xi; | ~~~~~~~~~~~~~~ 572 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 573 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 574 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 575 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 576 | // store the actual data | ~~~~~~~~~~~~~~~~~~~~~~~~ 577 | FWrite(x,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 578 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 579 | break; | ~~~~~~ 580 | } | ~ 581 | | 582 | case 1: // char (scale to 8 bits with compression) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 583 | { | ~ 584 | sub = ONE_BYTE_HALF; | ~~~~~~~~~~~~~~~~~~~~ 585 | min = vp->min(); | ~~~~~~~~~~~~~~~~ 586 | r = vp->max()- min; | ~~~~~~~~~~~~~~~~~~~ 587 | if (r > 0) { | ~~~~~~~~~~~~ 588 | sf = ONE_BYTE_HIGH/r; | ~~~~~~~~~~~~~~~~~~~~~ 589 | } else { | ~~~~~~~~ 590 | sf = 1.; | ~~~~~~~~ 591 | } | ~ 592 | | 593 | char* xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 594 | for (i=0;ielem(i)-min)*sf)-sub); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | } | ~ 597 | s = (void*)xc; | ~~~~~~~~~~~~~~ 598 | x = (const char*)s; | ~~~~~~~~~~~~~~~~~~~ 599 | // store the info needed to reconvert | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | FWrite(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 601 | FWrite(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 602 | FWrite(x,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 603 | free(xc); | ~~~~~~~~~ 604 | break; | ~~~~~~ 605 | } | ~ 606 | | 607 | } | ~ 608 | return 1; | ~~~~~~~~~ 609 | } | ~ 610 | | 611 | | 612 | static double v_vread(void* v) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | Vect* vp = (Vect*)v; | ~~~~~~~~~~~~~~~~~~~~ 614 | void* s = (void*)(vp->vec()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615 | | 616 | Object* ob = *hoc_objgetarg(1); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 617 | check_obj_type(ob, "File"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | OcFile* f = (OcFile*)(ob->u.this_pointer); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 619 | BYTEHEADER | ~~~~~~~~~~ 620 | | 621 | FILE* fp = f->file(); | ~~~~~~~~~~~~~~~~~~~~~ 622 | if (!fp) { | ~~~~~~~~~~ 623 | return 0.; | ~~~~~~~~~~ 624 | } | ~ 625 | | 626 | BinaryMode(f) | ~~~~~~~~~~~~~ 627 | int n; | ~~~~~~ 628 | FRead(&n,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 629 | | 630 | int type = 0; | ~~~~~~~~~~~~~ 631 | FRead(&type,sizeof(int),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 632 | | 633 | // since the type ranges from 1 to 5 (very important that it not be 0) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 634 | // we can check the type and decide if it needs to be byteswapped | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | if (type < 1 || type > 5) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | BYTESWAP_FLAG = 1; | ~~~~~~~~~~~~~~~~~~ 637 | }else{ | ~~~~~~ 638 | BYTESWAP_FLAG = 0; | ~~~~~~~~~~~~~~~~~~ 639 | } | ~ 640 | | 641 | BYTESWAP(n,int) | ~~~~~~~~~~~~~~~ 642 | BYTESWAP(type,int) | ~~~~~~~~~~~~~~~~~~ 643 | if (type < 1 || type > 5) { return 0.;} | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | if (vp->capacity() != n) vp->resize(n); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | | 646 | // read as appropriate type and convert to doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 647 | | 648 | int i; | ~~~~~~ 649 | double sf = 1.; | ~~~~~~~~~~~~~~~ 650 | double min = 0.; | ~~~~~~~~~~~~~~~~ 651 | double add; | ~~~~~~~~~~~ 652 | | 653 | switch (type) { | ~~~~~~~~~~~~~~~ 654 | | 655 | case 5: // ints; no conversion | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | { | ~ 657 | int *xi = (int *)malloc(n * sizeof(int)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 658 | FRead(xi,sizeof(int),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | for (i=0;ielem(i) = double(xi[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 662 | } | ~ 663 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 664 | break; | ~~~~~~ 665 | } | ~ 666 | | 667 | case 4: // doubles | ~~~~~~~~~~~~~~~~~~~~~~~~~ 668 | FRead(&(vp->elem(0)),sizeof(double),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (BYTESWAP_FLAG == 1) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | for (i=0;ielem(i),double) } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 671 | } | ~ 672 | break; | ~~~~~~ 673 | | 674 | case 3: // floats | ~~~~~~~~~~~~~~~~~~~~~~~~~ 675 | { | ~ 676 | float *xf = (float *)malloc(n * (unsigned)sizeof(float)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | FRead(xf,sizeof(float),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | for (i=0;ielem(i) = double(xf[i]); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 681 | } | ~ 682 | free((char *)xf); | ~~~~~~~~~~~~~~~~~ 683 | break; | ~~~~~~ 684 | } | ~ 685 | | 686 | case 2: // unsigned short ints | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 687 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 688 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 689 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 691 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 692 | | 693 | unsigned short *xi = (unsigned short *)malloc(n * (unsigned)sizeof(unsigned short)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | FRead(xi,sizeof(unsigned short),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (i=0;ielem(i) = double(xi[i]/sf +min); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 698 | } | ~ 699 | free((char *)xi); | ~~~~~~~~~~~~~~~~~ 700 | break; | ~~~~~~ 701 | } | ~ 702 | | 703 | case 1: // char | ~~~~~~~~~~~~~~~~~~~~~~~ 704 | { // convert back to double | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 705 | FRead(&sf,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 706 | FRead(&min,sizeof(double),1,fp); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 707 | BYTESWAP(sf,double) | ~~~~~~~~~~~~~~~~~~~ 708 | BYTESWAP(min,double) | ~~~~~~~~~~~~~~~~~~~~ 709 | char *xc = (char *)malloc(n * (unsigned)sizeof(char)); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 710 | FRead(xc,sizeof(char),n,fp); | ~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:710:12: note: in expansion of macro 'FRead' 710 | FRead(xc,sizeof(char),n,fp); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:614:15: warning: unused variable 's' [-Wunused-variable] 614 | void* s = (void*)(vp->vec()); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'Object** v_hist(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:1127:16: warning: unused variable 'high' [-Wunused-variable] 1127 | double high = start+step*size; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'double v_indwhere(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:1755:16: warning: unused variable 'm' [-Wunused-variable] 1755 | int i, iarg, m=0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'v_medfltr(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:3206:13: warning: 'operator delete[](void*)' called on pointer returned from a mismatched allocation function [-Wmismatched-new-delete] 3206 | delete [] res; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:3191:33: note: returned from 'calloc' 3191 | double *res = (double *)calloc(n,(unsigned)sizeof(double)); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp: In function 'call_simplex(double*, int, IvocVect*, IvocVect*, char*, int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocvect.cpp:2694:17: warning: 'retval' may be used uninitialized in this function [-Wmaybe-uninitialized] 2694 | return (retval); | ^ [ 13%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp: In function 'void steer_x(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/matrix.cpp:731:17: warning: unused variable 's' [-Wunused-variable] 731 | Symbol* s = hoc_spop(); | ^ [ 13%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp: In function 'void* cons(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mlinedit.cpp:139:1: warning: control reaches end of non-void function [-Wreturn-type] 139 | } | ^ [ 13%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp: In function 'int nrn_feround(int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/mymath.cpp:37:13: warning: unused variable 'm' [-Wunused-variable] 37 | int m; | ^ [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/objcmd.cpp [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.cpp [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp: In member function 'virtual void OcBox::box_append(OcGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbox.cpp:577:20: warning: unused variable 'wk' [-Wunused-variable] 577 | WidgetKit& wk = *WidgetKit::instance(); | ^~ [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocbrowsr.cpp [ 14%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp: In member function 'virtual void OcDeck::box_append(OcGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp:293:20: warning: unused variable 'wk' [-Wunused-variable] 293 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocdeck.cpp:294:20: warning: unused variable 'lk' [-Wunused-variable] 294 | LayoutKit& lk = *LayoutKit::instance(); | ^~ [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp: In function 'bool makePath(const string&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocfile.cpp:586:21: warning: comparison of integer expressions of different signedness: 'int' and 'const size_type' {aka 'const long unsigned int'} [-Wsign-compare] 586 | if (pos == std::string::npos) | ~~~~^~~~~~~~~~~~~~~~~~~~ [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:84:13: warning: 'void readmore()' defined but not used [-Wunused-function] 84 | static void readmore() { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:40:24: warning: 'filequeue' defined but not used [-Wunused-variable] 40 | static CopyStringList* filequeue; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ochelp.cpp:16:14: warning: 'help_pipe' defined but not used [-Wunused-variable] 16 | static FILE* help_pipe; | ^~~~~~~~~ [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oclist.cpp [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp: In member function 'virtual void OcFullMatrix::solv(IvocVect*, IvocVect*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.cpp:290:43: warning: comparison of integer expressions of different signedness: 'u_int' {aka 'unsigned int'} and 'int' [-Wsign-compare] 290 | }else if (use_lu && lu_factor_->m == nrow()) { | ~~~~~~~~~~~~~~^~~~~~~~~ [ 15%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocnoiv1.cpp [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocobserv.cpp [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocpicker.cpp [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocpointer.cpp [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocptrvector.cpp [ 16%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/octimer.cpp [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In constructor 'PrintableWindowManager::PrintableWindowManager()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1206:15: warning: variable 'wp1' set but not used [-Wunused-but-set-variable] 1206 | Coord wp1; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1246:38: warning: unused variable 'mother' [-Wunused-variable] 1246 | Menu* mbar, *mprint, *mses, *mother; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PrintableWindowManager::reconfigured(PrintableWindow*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1642:15: warning: unused variable 'r' [-Wunused-variable] 1642 | Coord r = l + w->width_pw(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1644:15: warning: unused variable 't' [-Wunused-variable] 1644 | Coord t = b + w->height_pw(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PrintableWindowManager::reconfigured(JavaWindow*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1672:15: warning: unused variable 'r' [-Wunused-variable] 1672 | Coord r = l + w->w(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:1674:15: warning: unused variable 't' [-Wunused-variable] 1674 | Coord t = b + w->h(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'void PWMImpl::common_print(ivPrinter*, bool, bool)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:2017:23: warning: unused variable 'sfac' [-Wunused-variable] 2017 | float sfac; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp: In member function 'PWMImpl::save_list(int, ScreenItem**, std::basic_ostream >&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/pwman.cpp:3228:50: warning: 'ocg' may be used uninitialized in this function [-Wmaybe-uninitialized] 3228 | ocg->save(o); | ~~~~~~~~~^~~ [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/rect.cpp [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/rubband.cpp [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp: In member function 'virtual void Scene::save_class(std::ostream&, const char*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scene.cpp:870:14: warning: unused variable 'count' [-Wunused-variable] 870 | long count = views_->count(); | ^~~~~ [ 17%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp: In member function 'virtual void SpecView::execute()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:691:14: warning: unused variable 'bx' [-Wunused-variable] 691 | bool bx = var_pair_chooser("X size", x1, x2, v->canvas()->window()); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:692:14: warning: unused variable 'by' [-Wunused-variable] 692 | bool by = var_pair_chooser("Y size", y1, y2, v->canvas()->window()); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp: In member function 'void OcViewGlyph::viewmenu(ivGlyph*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/scenepic.cpp:761:28: warning: unused variable 'wk' [-Wunused-variable] 761 | WidgetKit& wk = *WidgetKit::instance(); | ^~ [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp: In function 'Object** l_alias_list(void*)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp:169:22: warning: unused variable 'buf' [-Wunused-variable] 169 | char buf[256]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/strfun.cpp:167:13: warning: unused variable 'id' [-Wunused-variable] 167 | int id = (*po)->index; | ^~ [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp: In member function 'virtual void SymChooser::reread()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp:265:21: warning: unused variable 'fc' [-Wunused-variable] 265 | SymChooserImpl& fc = *impl_; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp: In member function 'void SymChooserImpl::accept_browser_index(int)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/symchoos.cpp:627:13: warning: unused variable 'sym' [-Wunused-variable] 627 | Symbol* sym = dir->symbol(i); | ^~~ [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp: In function 'bool str_chooser(const char*, char*, ivWindow*, ivCoord, ivCoord)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp:191:20: warning: unused variable 'l' [-Wunused-variable] 191 | LayoutKit& l = *LayoutKit::instance(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp: In static member function 'static bool Graph::label_chooser(const char*, char*, GLabel*, ivCoord, ivCoord)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/utility.cpp:350:20: warning: unused variable 'l' [-Wunused-variable] 350 | LayoutKit& l = *LayoutKit::instance(); | ^ [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In function 'void set_format()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:1835:22: warning: unused variable 'len' [-Wunused-variable] 1835 | static Coord len; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'virtual void HocEditorForItem::val_inc(const ivEvent&)': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2213:15: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 2213 | if (i == strlen(buf)) { | ~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In constructor 'StepperMenu::StepperMenu()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2394:20: warning: unused variable 'k' [-Wunused-variable] 2394 | WidgetKit& k = *WidgetKit::instance(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'void HocStateButton::button_action()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2855:26: warning: unused variable 't' [-Wunused-variable] 2855 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:2861:26: warning: unused variable 't' [-Wunused-variable] 2861 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: In member function 'void HocStateMenuItem::button_action()': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:3006:26: warning: unused variable 't' [-Wunused-variable] 3006 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:3012:26: warning: unused variable 't' [-Wunused-variable] 3012 | TelltaleState* t = b_->state(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:1835:22: warning: 'len' defined but not used [-Wunused-variable] 1835 | static Coord len; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xmenu.cpp:887:13: warning: 'void saveMenuFile()' defined but not used [-Wunused-function] 887 | static void saveMenuFile() { | ^~~~~~~~~~~~ [ 18%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp: In member function 'virtual void XYView::transform(ivTransformer&, const ivAllocation&, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:478:26: warning: unused variable 'nx' [-Wunused-variable] 478 | const Allotment& nx = n.x_allotment(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:479:26: warning: unused variable 'ny' [-Wunused-variable] 479 | const Allotment& ny = n.y_allotment(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:480:17: warning: unused variable 'v' [-Wunused-variable] 480 | XYView* v = (XYView*)this; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp: In member function 'virtual void View::transform(ivTransformer&, const ivAllocation&, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xyview.cpp:554:15: warning: unused variable 'sy' [-Wunused-variable] 554 | float sy = ay.span()/XYView::height(); | ^~ [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/field.cpp [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DUSEBBS=1 -DUSEGNU=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/xdep.cpp [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbs.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbs.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbs.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'virtual void BBSImpl::execute(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:290:23: warning: unused variable 's' [-Wunused-variable] 290 | char* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:292:21: warning: unused variable 'i' [-Wunused-variable] 292 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'virtual bool BBSImpl::working(int&, double&, int&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:390:29: warning: unused variable 'wid' [-Wunused-variable] 390 | int wid = upkint(); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:404:7: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized] 404 | printf("working n_=%d: after %d try elapsed %g sec got result for %d id=%d x=%g\n", | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 405 | n_, cnt, time()-t, working_id_, id, x); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp: In member function 'BBS::take(char const*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbs.cpp:476:23: warning: 't' may be used uninitialized in this function [-Wmaybe-uninitialized] 476 | printf("end take |%s| elapsed %g from %g\n", key, time()-t, t); | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 19%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'double save_test_bin(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:629:22: warning: unused variable 'ss' [-Wunused-variable] 629 | BBSaveState* ss = (BBSaveState*)v; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:174: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'double restore_test_bin(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:899:61: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 899 | nrn_assert(fread(buf, sizeof(char), global_size, f) == global_size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:920:60: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 920 | nrn_assert(fread(buf, sizeof(char), sz, f) == sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void tqcallback(const TQItem*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1142:33: warning: unused variable 'dl' [-Wunused-variable] 1142 | DEList *dl=0, *dl1=0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1172:42: warning: unused variable 'tt' [-Wunused-variable] 1172 | int srcid, i; double ts, tt; PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::del_pp2de()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1360:17: warning: unused variable 'dl' [-Wunused-variable] 1360 | DEList* dl, *dl1; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'int BBSaveState::counts(int**, int**)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1460:58: warning: unused variable 'base' [-Wunused-variable] 1460 | NrnHashIterateKeyValue(Int2Int, base2spgid, int, base, int, spgid) { | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1460:69: warning: unused variable 'spgid' [-Wunused-variable] 1460 | NrnHashIterateKeyValue(Int2Int, base2spgid, int, base, int, spgid) { | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:90:31: note: in definition of macro 'NrnHashIterateKeyValue' 90 | Value value = (*p__).second; \ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::mech(Prop*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1796:32: warning: unused variable 'd' [-Wunused-variable] 1796 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1798:32: warning: unused variable 'd' [-Wunused-variable] 1798 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1810:40: warning: unused variable 'd' [-Wunused-variable] 1810 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1812:40: warning: unused variable 'd' [-Wunused-variable] 1812 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1818:40: warning: unused variable 'd' [-Wunused-variable] 1818 | double d = hoc_xpop(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1820:40: warning: unused variable 'd' [-Wunused-variable] 1820 | double d = nrn_call_mech_func(ssi[p->type].callback, narg, p, p->type); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In member function 'void BBSaveState::netrecv_pp(Point_process*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1835:13: warning: unused variable 'type' [-Wunused-variable] 1835 | int type = pp->prop->type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void all2allv_int2(int*, int*, int*, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1965:13: warning: unused variable 'i' [-Wunused-variable] 1965 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void all2allv_dbl1(int*, int*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:1990:13: warning: unused variable 'i' [-Wunused-variable] 1990 | int i, size; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void scatteritems()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2036:68: warning: unused variable 'gid' [-Wunused-variable] 2036 | NrnHashIterateKeyValue(Int2DblList, src2send, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2070:60: warning: unused variable 'gid' [-Wunused-variable] 2070 | NrnHashIterateKeyValue(Int2DblList, src2send, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2015:16: warning: unused variable 'gid' [-Wunused-variable] 2015 | int i, gid, host; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2016:18: warning: unused variable 'dl' [-Wunused-variable] 2016 | DblList* dl; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void construct_presyn_queue()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2194:48: warning: unused variable 't2' [-Wunused-variable] 2194 | double t2 = dl->item(j); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:13: warning: unused variable 'gid' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:35: warning: unused variable 'ts' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2161:39: warning: unused variable 'tt' [-Wunused-variable] 2161 | int gid, tscnt, i; double ts, tt; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:178: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp: In function 'void bbss_queuecheck()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsavestate.cpp:2464:70: warning: unused variable 'gid' [-Wunused-variable] 2464 | NrnHashIterateKeyValue(Int2DblList, queuecheck_gid2unc, int, gid, DblList*, dl) { | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnhash.h:89:29: note: in definition of macro 'NrnHashIterateKeyValue' 89 | Key key = (*p__).first; \ | ^~~ [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsdirect.cpp [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslocal.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:13, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslocal.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp: In member function 'virtual char* BBSLocal::upkpickle(size_t*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:89:19: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 89 | assert(*n == len); | ~~~^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hocassrt.h:19:28: note: in definition of macro 'assert' 19 | # define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslsrv.cpp: In member function 'void BBSLocalServer::post(const char*, MessageValue*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslsrv.cpp:320:31: warning: variable 'm' set but not used [-Wunused-but-set-variable] 320 | MessageList::iterator m = messages_->insert( | ^ [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv2.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbslsrv2.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbssrv2mpi.cpp: In member function 'void BBSDirectServer::post(const char*, bbsmpibuf*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbssrv2mpi.cpp:235:39: warning: variable 'm' set but not used [-Wunused-but-set-variable] 235 | MessageList::iterator m = messages_->insert( | ^ [ 20%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsrcli.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbsrcli.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp: In member function 'virtual void BBSClient::take(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:233:13: warning: unused variable 'bufid' [-Wunused-variable] 233 | int bufid; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp: In member function 'virtual void BBSClient::start()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:326:15: warning: unused variable 'client' [-Wunused-variable] 326 | char* client = 0; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:327:13: warning: unused variable 'tid' [-Wunused-variable] 327 | int tid; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsclimpi.cpp:328:13: warning: unused variable 'n' [-Wunused-variable] 328 | int n; | ^ [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bbssrv.cpp [ 21%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/bgpmeminfo.c [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cachevec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cachevec.cpp [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/classreg.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/classreg.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/classreg.cpp [ 21%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodeobj.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodeobj.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'double use_mxb(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:345:19: warning: unused variable 'd' [-Wunused-variable] 345 | NetCvode* d = (NetCvode*)v; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'double cache_efficient(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:358:19: warning: unused variable 'd' [-Wunused-variable] 358 | NetCvode* d = (NetCvode*)v; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'void Cvode::activate_maxstate(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:921:21: warning: unused variable 'i' [-Wunused-variable] 921 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'int Cvode::cvode_init(double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1055:13: warning: unused variable 'iter' [-Wunused-variable] 1055 | int iter; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In member function 'int Cvode::daspk_advance_tn()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1334:13: warning: unused variable 'flag' [-Wunused-variable] 1334 | int flag, err; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1335:16: warning: unused variable 'tin' [-Wunused-variable] 1335 | double tin; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* msolve_thread_part2(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1473:13: warning: unused variable 'i' [-Wunused-variable] 1473 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* f_thread_ms_part2(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1569:13: warning: unused variable 'i' [-Wunused-variable] 1569 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: In function 'void* f_thread_ms_part3(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:1575:13: warning: unused variable 'i' [-Wunused-variable] 1575 | int i = nt->id; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:689:14: warning: 'void* msetup_thread(NrnThread*)' declared 'static' but never defined [-Wunused-function] 689 | static void* msetup_thread(NrnThread*); | ^~~~~~~~~~~~~ [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodestb.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvodestb.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp: In function 'void deliver_net_events(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:43:13: warning: unused variable 'i' [-Wunused-variable] 43 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:38:13: warning: 'void check_thresh(NrnThread*)' declared 'static' but never defined [-Wunused-function] 38 | static void check_thresh(NrnThread*); | ^~~~~~~~~~~~ [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cvtrset.cpp [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/cxprop.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'void read_temp1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:86:13: warning: unused variable 'nscan' [-Wunused-variable] 86 | int nscan, maxtype, imech, nmech, type, sz1, sz2, ntget, ith, nth, i, j, cnt, seq; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'void nrn_cache_prop_realloc()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:606:21: warning: unused variable 'j' [-Wunused-variable] 606 | int j, cnt = ml->nodecount; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:585:20: warning: unused variable 'type' [-Wunused-variable] 585 | int i, it, type; | ^~~~ [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/datapath.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/datapath.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/datapath.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/datapath.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'PathValue* HocDataPathImpl::found_v(void*, const char*, Symbol*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:265:13: warning: unused variable 'len' [-Wunused-variable] 265 | int len = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'void HocDataPathImpl::search_vectors()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:424:16: warning: unused variable 'cnt' [-Wunused-variable] 424 | int i, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp: In member function 'void HocDataPathImpl::search(Node*, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:483:13: warning: unused variable 'i' [-Wunused-variable] 483 | int i, cnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/datapath.cpp:483:16: warning: unused variable 'cnt' [-Wunused-variable] 483 | int i, cnt; | ^~~ [ 22%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/finithnd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/finithnd.cpp [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp: In constructor 'geometry3d_Cylinder::geometry3d_Cylinder(double, double, double, double, double, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:441:52: warning: 'geometry3d_Cylinder::cz' will be initialized after [-Wreorder] 441 | double r, rr, axisx, axisy, axisz, cx, cy, cz, h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:441:19: warning: 'double geometry3d_Cylinder::rr' [-Wreorder] 441 | double r, rr, axisx, axisy, axisz, cx, cy, cz, h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/geometry3d.cpp:444:1: warning: when initialized here [-Wreorder] 444 | geometry3d_Cylinder::geometry3d_Cylinder(double x0, double y0, double z0, | ^~~~~~~~~~~~~~~~~~~ [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/glinerec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp: In member function 'void GraphVector::record_install()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/glinerec.cpp:165:18: warning: unused variable 'gvr' [-Wunused-variable] 165 | GVectorRecord* gvr = new GVectorRecord(this); | ^~~ [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/hocmech.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp: In function 'void make_pointprocess()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp:311:21: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 311 | for (i=0; i < s2->s_varn; ++i) { | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/hocmech.cpp:252:14: warning: unused variable 'buf' [-Wunused-variable] 252 | char buf[256]; | ^~~ [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/impedanc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/impedanc.cpp [ 23%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/kschan.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/kschan.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_vres(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:292:17: warning: unused variable 'ks' [-Wunused-variable] 292 | KSChan* ks = (KSChan*)v; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_rseed(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:301:17: warning: unused variable 'ks' [-Wunused-variable] 301 | KSChan* ks = (KSChan*)v; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In function 'double ks_pr(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:653:17: warning: unused variable 's' [-Wunused-variable] 653 | Symbol* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:655:16: warning: unused variable 'j' [-Wunused-variable] 655 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In constructor 'KSChan::KSChan(Object*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:874:13: warning: unused variable 'i' [-Wunused-variable] 874 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setname(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:990:46: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 990 | if (!is_point()) for (i=0; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setion(const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1202:40: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1202 | for (i=2+io; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1240:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1240 | for (i=1 + io; i < rlsym_->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::free1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1270:29: warning: deleting object of polymorphic class type 'KSIv' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 1270 | if (iv_relation_) { delete iv_relation_; iv_relation_ = NULL; } | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::setcond()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1289:29: warning: deleting object of polymorphic class type 'KSIv' which has non-virtual destructor might cause undefined behavior [-Wdelete-non-virtual-dtor] 1289 | if (iv_relation_) { delete iv_relation_; } | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::settype(KSTransition*, int, const char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1443:14: warning: variable 'move' set but not used [-Wunused-but-set-variable] 1443 | bool move = true; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::ion_consist()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2249:18: warning: unused variable 'sec' [-Wunused-variable] 2249 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::state_consist(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2308:18: warning: unused variable 'sec' [-Wunused-variable] 2308 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'virtual void KSChan::cv_sc_update(int, Node**, double**, Datum**, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2910:16: warning: unused variable 'j' [-Wunused-variable] 2910 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2911:17: warning: unused variable 's' [-Wunused-variable] 2911 | double* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'void KSChan::usetable(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:3043:13: warning: unused variable 'i' [-Wunused-variable] 3043 | int i; | ^ In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:2: In function 'strncpy', inlined from 'kst_ligand(void*)' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:633:10: /usr/include/bits/string_fortified.h:95:34: warning: 'strncpy' specified bound 20 equals destination size [-Wstringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/kssingle.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp: In member function 'void KSSingle::state(Node*, double*, Datum*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp:246:13: warning: unused variable 'i' [-Wunused-variable] 246 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp: In member function 'void KSSingle::cv_update(Node*, double*, Datum*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kssingle.cpp:262:13: warning: unused variable 'i' [-Wunused-variable] 262 | int i; | ^ [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/linmod.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/linmod.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/linmod.cpp [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/linmod1.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/linmod1.cpp [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h: In constructor 'MatrixMap::MatrixMap(OcMatrix&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:63:18: warning: 'MatrixMap::ptree_' will be initialized after [-Wreorder] 63 | double** ptree_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:62:18: warning: 'double** MatrixMap::pm_' [-Wreorder] 62 | double** pm_; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:10:1: warning: when initialized here [-Wreorder] 10 | MatrixMap::MatrixMap(Matrix& mat) | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h: In constructor 'MatrixMap::MatrixMap(OcMatrix*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:63:18: warning: 'MatrixMap::ptree_' will be initialized after [-Wreorder] 63 | double** ptree_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.h:62:18: warning: 'double** MatrixMap::pm_' [-Wreorder] 62 | double** pm_; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:14:1: warning: when initialized here [-Wreorder] 14 | MatrixMap::MatrixMap(Matrix* mat) | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp: In member function 'void MatrixMap::alloc(int, int, Node**, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:50:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 50 | for (int k = 0; k < nonzero_i.size(); k++) { | ~~^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:41:13: warning: unused variable 'nrow' [-Wunused-variable] 41 | int nrow = m_.nrow(); | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/matrixmap.cpp:42:13: warning: unused variable 'ncol' [-Wunused-variable] 42 | int ncol = m_.ncol(); | ^~~~ [ 24%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/multisplit.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::multisplit_clear()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:523:29: warning: unused variable 'ms' [-Wunused-variable] 523 | MultiSplit* ms; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::prstruct()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1773:23: warning: unused variable 'nd' [-Wunused-variable] 1773 | Node* nd = ms->nd[0]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::multisplit_nocap_v_part3(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1956:16: warning: unused variable 'j' [-Wunused-variable] 1956 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In destructor 'virtual ReducedTree::~ReducedTree()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2454:13: warning: unused variable 'i' [-Wunused-variable] 2454 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitThread::bksub_backbone(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:19: warning: unused variable 'ip' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:23: warning: unused variable 'ip1' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2819:28: warning: unused variable 'ip2' [-Wunused-variable] 2819 | int i, j, ip, ip1, ip2; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::pmat(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3291:12: warning: unused variable 'ip' [-Wunused-variable] 3291 | int it, i, ip, is; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'void MultiSplitControl::pmatf(bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3321:12: warning: unused variable 'ip' [-Wunused-variable] 3321 | int it, i, ip, is; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'MultiSplitControl::multisplit(Section*, double, int, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:411:38: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized] 411 | hoc_execerror(s, secname(root->sec)); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~ [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp: In member function 'bool NrnProperty::more_var()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ndatclas.cpp:138:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 138 | if (npi_->iterator_ >= npi_->sym_->s_varn) { | ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/netcvode.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In static member function 'static DiscreteEvent* PlayRecordEvent::savestate_read(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:341:24: warning: unused variable 'de' [-Wunused-variable] 341 | DiscreteEvent* de = nil; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::del_cv_memb_list(Cvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1438:13: warning: unused variable 'i' [-Wunused-variable] 1438 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::distribute_dinfo(int*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1500:13: warning: unused variable 'i' [-Wunused-variable] 1500 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'bool NetCvode::init_global()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1800:50: warning: unused variable 'z' [-Wunused-variable] 1800 | CvodeThreadData& z = cv.ctd_[0]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::init_events()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:2802:16: warning: unused variable 'fifodelay' [-Wunused-variable] 2802 | double fifodelay; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In static member function 'static DiscreteEvent* SelfEvent::savestate_read(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3267:45: warning: unused variable 'iml' [-Wunused-variable] 3267 | int ppindex, ncindex, moff, pptype, iml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3269:17: warning: unused variable 'obj' [-Wunused-variable] 3269 | Object* obj; | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'int NetCvode::pgvts_event(double&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3578:13: warning: unused variable 'rank' [-Wunused-variable] 3578 | int rank, op, err, init; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netcvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::re_init(double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3913:19: warning: unused variable 'k' [-Wunused-variable] 3913 | int i, j, k, l; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:3913:22: warning: unused variable 'l' [-Wunused-variable] 3913 | int i, j, k, l; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCon* NetCvode::install_deliver(double*, Section*, Object*, Object*, double, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4485:13: warning: unused variable 'i' [-Wunused-variable] 4485 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'virtual void WatchCondition::pgvts_deliver(double, NetCvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5400:20: warning: unused variable 'nt' [-Wunused-variable] 5400 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'virtual void STECondition::pgvts_deliver(double, NetCvode*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5417:20: warning: unused variable 'nt' [-Wunused-variable] 5417 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In function 'void nrnthread_trajectory_values(int, int, void**, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5736:9: warning: unused variable 'i_trajec' [-Wunused-variable] 5736 | int i_trajec = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::deliver_net_events(NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5831:20: warning: unused variable 'tt' [-Wunused-variable] 5831 | double tm, tt, tsav; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::vec_remove()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6198:19: warning: unused variable 'iv' [-Wunused-variable] 6198 | IvocVect* iv = vector_arg(1); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::playrec_setup()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6207:17: warning: unused variable 'px' [-Wunused-variable] 6207 | double* px; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'double NetCvode::state_magnitudes()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6378:25: warning: unused variable 'ms' [-Wunused-variable] 6378 | double* ms; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6346:13: warning: unused variable 'i' [-Wunused-variable] 6346 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'void NetCvode::maxstate_analyse()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6441:23: warning: unused variable 'n' [-Wunused-variable] 6441 | int i, it, j, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::error_weights()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4236:35: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] 4236 | gcv_->states(vp + j); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::acor()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:4265:35: warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized] 4265 | gcv_->states(vp + j); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'NetCvode::maxstate_analyse()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:6460:43: warning: 'msi' may be used uninitialized in this function [-Wmaybe-uninitialized] 6460 | maxstate_analyze_1(it, *gcv_, msi, gcv_->ctd_[it]); | ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/netpar.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/netpar.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrn_cleanup_presyn(PreSyn*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:964:17: warning: unused variable 'pss' [-Wunused-variable] 964 | PreSyn* pss; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrnmpi_gid_clear(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:980:17: warning: unused variable 'ps' [-Wunused-variable] 980 | PreSyn* ps, *psi; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrn_gidout_iter(PFIO)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1508:17: warning: unused variable 'ps' [-Wunused-variable] 1508 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'size_t nrncore_netpar_bytes()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1529:11: warning: unused variable 'ps' [-Wunused-variable] 1529 | PreSyn* ps; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp: In function 'void nrncore_netpar_cellgroups_helper(nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/netpar.cpp:1580:11: warning: unused variable 'ps' [-Wunused-variable] 1580 | PreSyn* ps; | ^~ [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In constructor 'NonLinImpRep::NonLinImpRep()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:206:16: warning: unused variable 'j' [-Wunused-variable] 206 | int i, j, ieq, cnt; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:206:19: warning: unused variable 'ieq' [-Wunused-variable] 206 | int i, j, ieq, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'void NonLinImpRep::dsds()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:520:64: warning: unused variable 'nd' [-Wunused-variable] 520 | for (in = 0; in < ml->nodecount; ++in) { Node* nd = ml->nodelist[in]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'void NonLinImpRep::ode(int, Memb_list*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:557:13: warning: unused variable 'i' [-Wunused-variable] 557 | int i, nc; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:557:16: warning: variable 'nc' set but not used [-Wunused-but-set-variable] 557 | int i, nc; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'NonLinImpRep::gapsolve()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'jb' may be used uninitialized in this function [-Wmaybe-uninitialized] 619 | cmplx_spSolve(m_, rb-1, rx1-1, jb-1, jx1-1); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'rb' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'jx1' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'rx1' may be used uninitialized in this function [-Wmaybe-uninitialized] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:626:61: warning: 'jx' may be used uninitialized in this function [-Wmaybe-uninitialized] 626 | double err = fabs(rx1[i] - rx[i]) + fabs(jx1[i] - jx[i]); | ~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:626:38: warning: 'rx' may be used uninitialized in this function [-Wmaybe-uninitialized] 626 | double err = fabs(rx1[i] - rx[i]) + fabs(jx1[i] - jx[i]); | ~~~~^ [ 25%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:111: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnsection_mapping.h: In member function 'CellMapping* NrnMappingInfo::get_cell_mapping(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnsection_mapping.h:119:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 119 | for(int i = 0; i < mapping.size(); i++) { | ~~^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'size_t part1()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:275:22: warning: unused variable 'tml' [-Wunused-variable] 275 | NrnThreadMembList* tml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void datumtransform(nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:730:16: warning: unused variable 'nt' [-Wunused-variable] 730 | NrnThread& nt = nrn_threads[ith]; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/tqueue.h:58, from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/netcvode.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:109: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void write_contiguous_art_data(double**, int, int, FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1081:14: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 1081 | assert(n == szitem); | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_2(int, int*&, double*&, double*&, double*&, double*&, double*&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1257:7: warning: unused variable 'n' [-Wunused-variable] 1257 | int n = nt.end; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_3(int, int, int*&, double*&, int*&, int*&, double*&, double*&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1359:14: warning: unused variable 'nt' [-Wunused-variable] 1359 | NrnThread& nt = nrn_threads[tid]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int nrnthread_dat2_corepointer(int, int&)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1397:14: warning: unused variable 'nt' [-Wunused-variable] 1397 | NrnThread& nt = nrn_threads[tid]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void write_nrnthread_task(const char*, nrncore_CellGroup*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1696:23: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector::size_type' {aka 'long unsigned int'} [-Wsign-compare] 1696 | for (int i = 0; i < iRecvVec.size(); ++i) | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'int* datum2int(int, Memb_list*, NrnThread&, nrncore_CellGroup&, nrncore_DatumIndices&, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1712:12: warning: unused variable 'd' [-Wunused-variable] 1712 | Datum* d = ml->pdata[i]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'void* get_coreneuron_handle()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1952:15: warning: ignoring return value of 'char* getcwd(char*, size_t)' declared with attribute 'warn_unused_result' [-Wunused-result] 1952 | getcwd(pwd, FILENAME_MAX); | ~~~~~~^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1075:13: warning: 'void write_contiguous_art_data(double**, int, int, FILE*)' defined but not used [-Wunused-function] 1075 | static void write_contiguous_art_data(double** data, int nitem, int szitem, FILE* f) { | ^~~~~~~~~~~~~~~~~~~~~~~~~ [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrndae.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h: In constructor 'NrnDAE::NrnDAE(OcMatrix*, IvocVect*, IvocVect*, int, Node**, IvocVect*, void (*)(void*), void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:186:14: warning: 'NrnDAE::yptmp_' will be initialized after [-Wreorder] 186 | Vect yptmp_; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:183:14: warning: 'IvocVect NrnDAE::cyp_' [-Wreorder] 183 | Vect cyp_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:137:1: warning: when initialized here [-Wreorder] 137 | NrnDAE::NrnDAE(Matrix* cmat, Vect* const yvec, Vect* const y0, int nnode, | ^~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:3: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:183:14: warning: 'NrnDAE::cyp_' will be initialized after [-Wreorder] 183 | Vect cyp_; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.h:139:12: warning: 'void (* NrnDAE::f_init_)(void*)' [-Wreorder] 139 | void (*f_init_)(void* data); | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndae.cpp:137:1: warning: when initialized here [-Wreorder] 137 | NrnDAE::NrnDAE(Matrix* cmat, Vect* const yvec, Vect* const y0, int nnode, | ^~~~~~ [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndaspk.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrndaspk.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp: In member function 'int Daspk::init()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:233:13: warning: unused variable 'i' [-Wunused-variable] 233 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:64:12: warning: 'int msolve(IDAMem, N_Vector, N_Vector, N_Vector, N_Vector)' declared 'static' but never defined [-Wunused-function] 64 | static int msolve(IDAMem mem, N_Vector b, N_Vector ycur, N_Vector ypcur, | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/nrndaspk.cpp:216:15: warning: 'double check(double, Daspk*)' defined but not used [-Wunused-function] 216 | static double check(double t, Daspk* ida) { | ^~~~~ [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp: In function 'void mech_menu(Prop*, double, int, const char*, MechSelector*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:291:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 291 | for (j=0; j < sym->s_varn; j++ ) { | ~~^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp: In function 'void point_menu(Object*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:459:47: warning: array subscript has type 'char' [-Wchar-subscripts] 459 | psym = pointsym[pnt_map[pp->prop->type]]; | ~~~~~~~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:476:29: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 476 | for (k=0; k < psym->s_varn; k++ ) { | ~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnmenu.cpp:488:44: warning: unused variable 'a' [-Wunused-variable] 488 | Arrayinfo* a = vsym->arayinfo; | ^ [ 26%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DNRNCMAKE -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -DUSE_LIBNRNPYTHON_MAJORMINOR=0 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnpy.cpp [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnrtime.cpp [ 27%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/nrnste.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnste.cpp [ 27%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c: In function 'N_VNew_NrnSerialLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c:160:21: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] 160 | NV_DATA_S_LD(v) = data; /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c: In function 'N_VClone_NrnSerialLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnserial_ld.c:364:21: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] 364 | NV_DATA_S_LD(v) = data; [ 27%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c: In function 'N_VNew_NrnThread': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:175:30: warning: unused variable 'content' [-Wunused-variable] 175 | N_VectorContent_NrnThread* content; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c: In function 'N_VWL2Norm_NrnThread': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:701:12: warning: variable 'N' set but not used [-Wunused-but-set-variable] 701 | long int N; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:781:14: warning: 'vminquotient' defined but not used [-Wunused-function] 781 | static void* vminquotient(NrnThread* nt) { | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread.c:366:13: warning: 'pr' defined but not used [-Wunused-function] 366 | static void pr(N_Vector x) { N_VPrint_NrnThread(x); } | ^~ [ 27%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c: In function 'N_VNew_NrnThreadLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:175:32: warning: unused variable 'content' [-Wunused-variable] 175 | N_VectorContent_NrnThreadLD* content; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c: In function 'N_VWL2Norm_NrnThreadLD': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:700:12: warning: variable 'N' set but not used [-Wunused-but-set-variable] 700 | long int N; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:780:14: warning: 'vminquotient' defined but not used [-Wunused-function] 780 | static void* vminquotient(NrnThread* nt) { | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnthread_ld.c:365:13: warning: 'pr' defined but not used [-Wunused-function] 365 | static void pr(N_Vector x) { N_VPrint_NrnThreadLD(x); } | ^~ [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In function 'double multisplit(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:616:13: warning: unused variable 'reducedtree_host' [-Wunused-variable] 616 | int reducedtree_host = 0; | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In member function 'virtual void BBSImpl::return_args(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1304:13: warning: variable 'i' set but not used [-Wunused-but-set-variable] 1304 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:1308:13: warning: unused variable 'wid' [-Wunused-variable] 1308 | int wid = upkint(); | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocbbs.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp: In function 'broadcast(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:864:38: warning: 's' may be used uninitialized in this function [-Wmaybe-uninitialized] 864 | nrnmpi_char_broadcast(s, cnt, srcid); | ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~ [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/occvode.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/occvode.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/occvode.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/occvode.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::new_no_cap_memb(CvodeThreadData&, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:277:20: warning: unused variable 'ml' [-Wunused-variable] 277 | Memb_list* ml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::fun_thread_ms_part1(double, double*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:715:26: warning: unused variable 'z' [-Wunused-variable] 715 | CvodeThreadData& z = ctd_[nt->id]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::before_after(BAMechList*, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:764:16: warning: unused variable 'j' [-Wunused-variable] 764 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'void Cvode::acor(double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:989:20: warning: unused variable 'nt' [-Wunused-variable] 989 | NrnThread* nt; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp: In member function 'Cvode::new_no_cap_memb(CvodeThreadData&, NrnThread*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/occvode.cpp:298:35: warning: 'ncm' may be used uninitialized in this function [-Wmaybe-uninitialized] 298 | ncm->next = new CvMembList(); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~ [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ocjump.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ocjump.cpp [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/partrans.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/partrans.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: In function 'void nrn_partrans_update_ptrs()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:373:16: warning: variable 'n' set but not used [-Wunused-but-set-variable] 373 | int i, n; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:692: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp: In function 'void rendezvous_rank_get(int*, int, int*&, int*&, int*&, int*&, int*&, int*&, int (*)(int))': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp:68:7: warning: unused variable 'rank' [-Wunused-variable] 68 | int rank = nrnmpi_myid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp: In function 'void have_to_want(int*, int, int*, int, int*&, int*&, int*&, int*&, int*&, int*&, int (*)(int))': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/have2want.cpp:105:7: warning: unused variable 'rank' [-Wunused-variable] 105 | int rank = nrnmpi_myid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:329:13: warning: 'void check_pointers()' defined but not used [-Wunused-function] 329 | static void check_pointers() { | ^~~~~~~~~~~~~~ [ 28%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/ppshape.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/ppshape.cpp [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp: In function 'void pr_memb(int, Memb_list*, int*, NrnThread&, FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/prcellstate.cpp:30:7: warning: unused variable 'psize' [-Wunused-variable] 30 | int psize = nrn_prop_dparam_size_[type]; | ^~~~~ [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/pysecname2sec.cpp [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/rotate3d.cpp [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/savstate.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/savstate.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:14, from /builddir/build/BUILD/nrn-7.8.1/src/ivoc/oc2iv.h:7, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'virtual void SaveState::read(OcFile*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:735:33: note: in expansion of macro 'ASSERTfread' 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:739:33: note: in expansion of macro 'ASSERTfread' 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:747:33: note: in expansion of macro 'ASSERTfread' 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:751:33: note: in expansion of macro 'ASSERTfread' 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:767:17: note: in expansion of macro 'ASSERTfread' 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'virtual void SaveState::write(OcFile*, bool)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:800:33: note: in expansion of macro 'ASSERTfwrite' 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:803:33: note: in expansion of macro 'ASSERTfwrite' 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:810:33: note: in expansion of macro 'ASSERTfwrite' 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:813:33: note: in expansion of macro 'ASSERTfwrite' 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:821:17: note: in expansion of macro 'ASSERTfwrite' 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::readnet(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:939:25: note: in expansion of macro 'ASSERTfread' 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:947:17: note: in expansion of macro 'ASSERTfread' 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:33:56: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 33 | #define ASSERTfread(a,b,c,d) nrn_assert(fread(a,b,c,d) == c) | ~~~~~~~~~~~~~~~^~~~~ 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:965:17: note: in expansion of macro 'ASSERTfread' 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::writenet(FILE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1010:25: note: in expansion of macro 'ASSERTfwrite' 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1011 | } | ~ 1012 | } | ~ 1013 | fprintf(f, "%d\n", npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1014 | if (npss_) { | ~~~~~~~~~~~~ 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1015:17: note: in expansion of macro 'ASSERTfwrite' 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:34:58: warning: comparison of integer expressions of different signedness: 'size_t' {aka 'long unsigned int'} and 'int' [-Wsign-compare] 34 | #define ASSERTfwrite(a,b,c,d) nrn_assert(fwrite(a,b,c,d) == c) | ~~~~~~~~~~~~~~~~^~~~~ 35 | | 36 | class SaveState : public Resource { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 37 | public: | ~~~~~~~ 38 | SaveState(); | ~~~~~~~~~~~~ 39 | ~SaveState(); | ~~~~~~~~~~~~~ 40 | virtual void save(); | ~~~~~~~~~~~~~~~~~~~~ 41 | virtual void restore(int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 42 | virtual void read(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 43 | virtual void write(OcFile*, bool close); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 44 | struct NodeState { | ~~~~~~~~~~~~~~~~~~ 45 | double v; | ~~~~~~~~~ 46 | int nmemb; | ~~~~~~~~~~ 47 | int* type; | ~~~~~~~~~~ 48 | int nstate; | ~~~~~~~~~~~ 49 | double* state; | ~~~~~~~~~~~~~~ 50 | }; | ~~ 51 | struct SecState { | ~~~~~~~~~~~~~~~~~ 52 | Section* sec; | ~~~~~~~~~~~~~ 53 | int nnode; | ~~~~~~~~~~ 54 | struct NodeState* ns; | ~~~~~~~~~~~~~~~~~~~~~ 55 | struct NodeState* root; // non-zero for rootnode | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 56 | }; | ~~ 57 | struct StateStructInfo { | ~~~~~~~~~~~~~~~~~~~~~~~~ 58 | int offset; | ~~~~~~~~~~~ 59 | int size; | ~~~~~~~~~ 60 | }; | ~~ 61 | struct ACellState { | ~~~~~~~~~~~~~~~~~~~ 62 | int type; | ~~~~~~~~~ 63 | int ncell; | ~~~~~~~~~~ 64 | double* state; | ~~~~~~~~~~~~~~ 65 | }; | ~~ 66 | struct NetConState { | ~~~~~~~~~~~~~~~~~~~~ 67 | int object_index; // for checking | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 68 | int nstate; | ~~~~~~~~~~~ 69 | double* state; | ~~~~~~~~~~~~~~ 70 | }; | ~~ 71 | struct PreSynState { | ~~~~~~~~~~~~~~~~~~~~ 72 | bool flag; // is it firing? | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 73 | double valthresh, valold, told; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 74 | | 75 | }; | ~~ 76 | struct TQState { | ~~~~~~~~~~~~~~~~ 77 | int nstate; | ~~~~~~~~~~~ 78 | double* tdeliver; | ~~~~~~~~~~~~~~~~~ 79 | DiscreteEvent** items; | ~~~~~~~~~~~~~~~~~~~~~~ 80 | }; | ~~ 81 | private: | ~~~~~~~~ 82 | bool check(bool warn); | ~~~~~~~~~~~~~~~~~~~~~~ 83 | void alloc(); | ~~~~~~~~~~~~~ 84 | void ssfree(); | ~~~~~~~~~~~~~~ 85 | void ssi_def(); | ~~~~~~~~~~~~~~~ 86 | private: | ~~~~~~~~ 87 | void fread_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 88 | void fwrite_NodeState(NodeState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 89 | void fread_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 90 | void fwrite_SecState(SecState*, int, FILE*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 91 | private: | ~~~~~~~~ 92 | double t_; | ~~~~~~~~~~ 93 | int nroot_; | ~~~~~~~~~~~ 94 | int nsec_; | ~~~~~~~~~~ 95 | SecState* ss_; | ~~~~~~~~~~~~~~ 96 | int nacell_; // number of types | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 97 | ACellState* acell_; | ~~~~~~~~~~~~~~~~~~~ 98 | int nncs_; | ~~~~~~~~~~ 99 | NetConState* ncs_; | ~~~~~~~~~~~~~~~~~~ 100 | int npss_; | ~~~~~~~~~~ 101 | PreSynState* pss_; | ~~~~~~~~~~~~~~~~~~ 102 | TQState* tqs_; | ~~~~~~~~~~~~~~ 103 | int tqcnt_; // volatile for index of forall_callback | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 104 | int nprs_; | ~~~~~~~~~~ 105 | PlayRecordSave** prs_; | ~~~~~~~~~~~~~~~~~~~~~~ 106 | static StateStructInfo* ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 107 | static cTemplate* nct; | ~~~~~~~~~~~~~~~~~~~~~~ 108 | private: | ~~~~~~~~ 109 | void savenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 110 | void restorenode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 111 | bool checknode(NodeState&, Node*, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 112 | void allocnode(NodeState&, Node*); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 113 | | 114 | void saveacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 115 | void restoreacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 116 | bool checkacell(ACellState&, int type, bool); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 117 | void allocacell(ACellState&, int type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 118 | | 119 | void savenet(); | ~~~~~~~~~~~~~~~ 120 | void restorenet(); | ~~~~~~~~~~~~~~~~~~ 121 | void readnet(FILE*); | ~~~~~~~~~~~~~~~~~~~~ 122 | void writenet(FILE*); | ~~~~~~~~~~~~~~~~~~~~~ 123 | bool checknet(bool); | ~~~~~~~~~~~~~~~~~~~~ 124 | void allocnet(); | ~~~~~~~~~~~~~~~~ 125 | void free_tq(); | ~~~~~~~~~~~~~~~ 126 | void alloc_tq(); | ~~~~~~~~~~~~~~~~ 127 | public: | ~~~~~~~ 128 | void tqcount(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 129 | void tqsave(const TQItem*, int); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 130 | }; | ~~ 131 | | 132 | static SaveState* this_savestate; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133 | static int callback_mode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 134 | | 135 | void tqcallback(const TQItem* tq, int i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | if (callback_mode == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 137 | this_savestate->tqcount(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 138 | }else{ | ~~~~~~ 139 | this_savestate->tqsave(tq, i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 140 | } | ~ 141 | } | ~ 142 | | 143 | #if __sgi && 0 | ~~~~~~~~~~~~~~ 144 | // fixed in version 5 of os | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 145 | StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 146 | #else | ~~~~~ 147 | SaveState::StateStructInfo* SaveState::ssi; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 148 | #endif | ~~~~~~ 149 | cTemplate* SaveState::nct; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 150 | | 151 | SaveState::SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 152 | int i, j; | ~~~~~~~~~ 153 | ssi_def(); | ~~~~~~~~~~ 154 | nroot_ = 0; | ~~~~~~~~~~~ 155 | ss_ = NULL; | ~~~~~~~~~~~ 156 | nsec_ = 0; | ~~~~~~~~~~ 157 | nncs_ = 0; | ~~~~~~~~~~ 158 | ncs_ = NULL; | ~~~~~~~~~~~~ 159 | npss_ = 0; | ~~~~~~~~~~ 160 | pss_ = NULL; | ~~~~~~~~~~~~ 161 | tqs_ = new TQState(); | ~~~~~~~~~~~~~~~~~~~~~ 162 | tqs_->nstate = 0; | ~~~~~~~~~~~~~~~~~ 163 | nprs_ = 0; | ~~~~~~~~~~ 164 | prs_ = NULL; | ~~~~~~~~~~~~ 165 | nacell_ = 0; | ~~~~~~~~~~~~ 166 | for (i=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 167 | ++nacell_; | ~~~~~~~~~~ 168 | } | ~ 169 | acell_ = new ACellState[nacell_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 170 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 171 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 172 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 173 | } | ~ 174 | for (i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 175 | acell_[j].type = i; | ~~~~~~~~~~~~~~~~~~~ 176 | ++j; | ~~~~ 177 | } | ~ 178 | } | ~ 179 | | 180 | SaveState::~SaveState() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 181 | ssfree(); | ~~~~~~~~~ 182 | delete tqs_; | ~~~~~~~~~~~~ 183 | delete [] acell_; | ~~~~~~~~~~~~~~~~~ 184 | } | ~ 185 | | 186 | void SaveState::fread_NodeState(NodeState* ns, int cnt, FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 187 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 188 | ASSERTfread(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 189 | ASSERTfread(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 190 | ASSERTfread(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 191 | } | ~ 192 | } | ~ 193 | void SaveState::fwrite_NodeState(NodeState* ns, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 194 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 195 | ASSERTfwrite(&ns[i].v, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 196 | ASSERTfwrite(&ns[i].nmemb, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 197 | ASSERTfwrite(&ns[i].nstate, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 198 | } | ~ 199 | } | ~ 200 | void SaveState::fread_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 201 | int b; | ~~~~~~ 202 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 203 | ASSERTfread(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 204 | ASSERTfread(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 205 | if (b) { | ~~~~~~~~ 206 | ss[i].root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 207 | }else{ | ~~~~~~ 208 | ss[i].root = 0; | ~~~~~~~~~~~~~~~ 209 | } | ~ 210 | } | ~ 211 | } | ~ 212 | void SaveState::fwrite_SecState(SecState* ss, int cnt, FILE* f){ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 213 | int b; | ~~~~~~ 214 | for (int i=0; i < cnt; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 215 | ASSERTfwrite(&ss[i].nnode, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 216 | b = ss[i].root ? 1 : 0; | ~~~~~~~~~~~~~~~~~~~~~~~ 217 | ASSERTfwrite(&b, sizeof(int), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 218 | } | ~ 219 | } | ~ 220 | | 221 | void SaveState::ssi_def() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 222 | if (nct) { return; } | ~~~~~~~~~~~~~~~~~~~~ 223 | Symbol* s = hoc_lookup("NetCon"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 224 | nct = s->u.ctemplate; | ~~~~~~~~~~~~~~~~~~~~~ 225 | ssi = new StateStructInfo[n_memb_func]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 226 | for (int im=0; im < n_memb_func; ++im) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 227 | ssi[im].offset = -1; | ~~~~~~~~~~~~~~~~~~~~ 228 | ssi[im].size = 0; | ~~~~~~~~~~~~~~~~~ 229 | if (!memb_func[im].sym) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 230 | continue; | ~~~~~~~~~ 231 | } | ~ 232 | NrnProperty* np = new NrnProperty(memb_func[im].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 233 | // generally we only save STATE variables. However for | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 234 | // models containing a NET_RECEIVE block, we also need to | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 235 | // save everything except the parameters | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 236 | // because they often contain | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 237 | // logic and analytic state values. Unfortunately, it is often | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 238 | // the case that the ASSIGNED variables are not declared as | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239 | // RANGE variables so to avoid missing state, save the whole | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 240 | // param array including PARAMETERs. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 241 | if (pnt_receive[im]) { | ~~~~~~~~~~~~~~~~~~~~~~~ 242 | ssi[im].offset = 0; | ~~~~~~~~~~~~~~~~~~~ 243 | ssi[im].size = np->prop()->param_size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 244 | }else{ | ~~~~~~ 245 | int type = STATE; | ~~~~~~~~~~~~~~~~~ 246 | for (Symbol* sym = np->first_var(); np->more_var(); sym = np->next_var()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 247 | if (np->var_type(sym) == type | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 248 | || np->var_type(sym) == STATE | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 249 | || sym->subtype == _AMBIGUOUS) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 250 | if (ssi[im].offset < 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 251 | ssi[im].offset = np->prop_index(sym); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 252 | } | ~ 253 | ssi[im].size += hoc_total_array_data(sym, 0); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 254 | } | ~ 255 | } | ~ 256 | } | ~ 257 | delete np; | ~~~~~~~~~~ 258 | } | ~ 259 | } | ~ 260 | | 261 | bool SaveState::check(bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 262 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 263 | int isec; | ~~~~~~~~~ 264 | if (nsec_ != section_count) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 265 | if (warn) { | ~~~~~~~~~~~ 266 | fprintf(stderr, "SaveState warning: %d sections exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 267 | section_count, nsec_); | ~~~~~~~~~~~~~~~~~~~~~~ 268 | } | ~ 269 | return false; | ~~~~~~~~~~~~~ 270 | } | ~ 271 | if (nroot_ != nrn_global_ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | if (warn) { | ~~~~~~~~~~~ 273 | fprintf(stderr, "SaveState warning: %d cells exist but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 274 | nrn_global_ncell, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 275 | } | ~ 276 | return false; | ~~~~~~~~~~~~~ 277 | } | ~ 278 | if (nsec_ && ss_[0].sec == NULL) { // got the data from a read | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 279 | isec = 0; ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 280 | ss_[isec].sec = sec; | ~~~~~~~~~~~~~~~~~~~~ 281 | section_ref(ss_[isec].sec); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 282 | ++isec; | ~~~~~~~ 283 | } | ~ 284 | } | ~ 285 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 286 | if (!checkacell(acell_[j], i, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 287 | return false; | ~~~~~~~~~~~~~ 288 | } | ~ 289 | ++j; | ~~~~ 290 | } | ~ 291 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 292 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 293 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 294 | if (!sec->prop || sec->nnode != ss.nnode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 295 | if (warn) { | ~~~~~~~~~~~ 296 | if (!sec->prop) { | ~~~~~~~~~~~~~~~~~ 297 | fprintf(stderr, "SaveState warning: saved section no longer exists\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 298 | }else{ | ~~~~~~ 299 | fprintf(stderr, "SaveState warning: %s has %d nodes but saved %d\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 300 | secname(sec), sec->nnode, ss.nnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 301 | } | ~ 302 | } | ~ 303 | return false; | ~~~~~~~~~~~~~ 304 | } | ~ 305 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 306 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 307 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308 | int i=0; | ~~~~~~~~ 309 | Prop* p; | ~~~~~~~~ 310 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 311 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 312 | continue; | ~~~~~~~~~ 313 | } | ~ 314 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 315 | if (warn) { | ~~~~~~~~~~~ 316 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 317 | fewer mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 318 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 319 | } | ~ 320 | return false; | ~~~~~~~~~~~~~ 321 | } | ~ 322 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 323 | if (warn) { | ~~~~~~~~~~~ 324 | fprintf(stderr, "SaveState warning: mechanisms out of order at node %d of %s\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 325 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 326 | inode, secname(sec), memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 327 | } | ~ 328 | return false; | ~~~~~~~~~~~~~ 329 | } | ~ 330 | ++i; | ~~~~ 331 | } | ~ 332 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 333 | if (warn) { | ~~~~~~~~~~~ 334 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at node %d of %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 335 | inode, secname(sec)); | ~~~~~~~~~~~~~~~~~~~~~ 336 | } | ~ 337 | return false; | ~~~~~~~~~~~~~ 338 | } | ~ 339 | } | ~ 340 | if (!sec->parentsec || ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 341 | if (sec->parentsec || !ss.root) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 342 | if (warn) { | ~~~~~~~~~~~ 343 | fprintf(stderr, "SaveState warning: Saved section and %s are not both root sections.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 344 | secname(sec)); | ~~~~~~~~~~~~~~ 345 | } | ~ 346 | } | ~ 347 | if (!checknode(*ss.root, sec->parentnode, warn)) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 348 | return false; | ~~~~~~~~~~~~~ 349 | } | ~ 350 | } | ~ 351 | | 352 | } | ~ 353 | if (!checknet(warn)) { return false; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 354 | return true; | ~~~~~~~~~~~~ 355 | } | ~ 356 | | 357 | bool SaveState::checknode(NodeState& ns, Node* nd, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 358 | int i=0; | ~~~~~~~~ 359 | Prop* p; | ~~~~~~~~ 360 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 361 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 362 | continue; | ~~~~~~~~~ 363 | } | ~ 364 | if (i >= ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 365 | if (warn) { | ~~~~~~~~~~~ 366 | fprintf(stderr,"SaveState warning: \ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367 | fewer mechanisms saved than exist at a root node\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 368 | } | ~ 369 | return false; | ~~~~~~~~~~~~~ 370 | } | ~ 371 | if (p->type != ns.type[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 372 | if (warn) { | ~~~~~~~~~~~ 373 | fprintf(stderr, "SaveState warning: mechanisms out of order at a rootnode\n\ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 374 | saved %s but need %s\n", | ~~~~~~~~~~~~~~~~~~~~~~~~ 375 | memb_func[i].sym->name, memb_func[p->type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 376 | } | ~ 377 | return false; | ~~~~~~~~~~~~~ 378 | } | ~ 379 | ++i; | ~~~~ 380 | } | ~ 381 | if (i != ns.nmemb) { | ~~~~~~~~~~~~~~~~~~~~ 382 | if (warn) { | ~~~~~~~~~~~ 383 | fprintf(stderr, "SaveState warning: more mechanisms saved than exist at a rootnode\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 384 | } | ~ 385 | return false; | ~~~~~~~~~~~~~ 386 | } | ~ 387 | return true; | ~~~~~~~~~~~~ 388 | } | ~ 389 | | 390 | bool SaveState::checkacell(ACellState& ac, int type, bool warn) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 391 | if (memb_list[type].nodecount != ac.ncell) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 392 | if (warn) { | ~~~~~~~~~~~ 393 | fprintf(stderr, "SaveState warning: different number of %s saved than exist.\n", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 394 | memb_func[type].sym->name); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 395 | } | ~ 396 | return false; | ~~~~~~~~~~~~~ 397 | } | ~ 398 | return true; | ~~~~~~~~~~~~ 399 | } | ~ 400 | | 401 | void SaveState::alloc() { | ~~~~~~~~~~~~~~~~~~~~~~~~~ 402 | ssfree(); | ~~~~~~~~~ 403 | int inode, isec; | ~~~~~~~~~~~~~~~~ 404 | hoc_Item* qsec; | ~~~~~~~~~~~~~~~ 405 | nsec_ = section_count; | ~~~~~~~~~~~~~~~~~~~~~~ 406 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 407 | nroot_ = 0; | ~~~~~~~~~~~ 408 | isec = 0; | ~~~~~~~~~ 409 | ForAllSections(sec) | ~~~~~~~~~~~~~~~~~~~ 410 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 411 | ss.sec = sec; | ~~~~~~~~~~~~~ 412 | section_ref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~ 413 | ss.nnode = ss.sec->nnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 414 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 415 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 416 | Node* nd = ss.sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 417 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 418 | allocnode(ns, nd); | ~~~~~~~~~~~~~~~~~~ 419 | } | ~ 420 | if (!sec->parentsec) { | ~~~~~~~~~~~~~~~~~~~~~~ 421 | assert(sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~ 422 | ss.root = new NodeState; | ~~~~~~~~~~~~~~~~~~~~~~~~ 423 | allocnode(*ss.root, sec->parentnode); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 424 | ++nroot_; | ~~~~~~~~~ 425 | }else{ | ~~~~~~ 426 | ss.root = 0; | ~~~~~~~~~~~~ 427 | } | ~ 428 | ++isec; | ~~~~~~~ 429 | } | ~ 430 | assert(isec == section_count); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 431 | assert(nroot_ == nrn_global_ncell); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 432 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 433 | allocacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 434 | ++j; | ~~~~ 435 | } | ~ 436 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 437 | nprs_ = prl->count(); | ~~~~~~~~~~~~~~~~~~~~~ 438 | if (nprs_) { | ~~~~~~~~~~~~ 439 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 440 | } | ~ 441 | allocnet(); | ~~~~~~~~~~~ 442 | } | ~ 443 | | 444 | void SaveState::allocnode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 445 | ns.nmemb = 0; | ~~~~~~~~~~~~~ 446 | ns.type = NULL; | ~~~~~~~~~~~~~~~ 447 | ns.state = NULL; | ~~~~~~~~~~~~~~~~ 448 | ns.nstate = 0; | ~~~~~~~~~~~~~~ 449 | Prop* p; | ~~~~~~~~ 450 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 451 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 452 | continue; | ~~~~~~~~~ 453 | } | ~ 454 | ++ns.nmemb; | ~~~~~~~~~~~ 455 | ns.nstate += ssi[p->type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 456 | } | ~ 457 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 458 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 459 | } | ~ 460 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 461 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 462 | } | ~ 463 | int i = 0; | ~~~~~~~~~~ 464 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 465 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 466 | continue; | ~~~~~~~~~ 467 | } | ~ 468 | ns.type[i] = p->type; | ~~~~~~~~~~~~~~~~~~~~~ 469 | ++i; | ~~~~ 470 | } | ~ 471 | } | ~ 472 | | 473 | void SaveState::allocacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 474 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 475 | ac.type = type; | ~~~~~~~~~~~~~~~ 476 | ac.ncell = ml.nodecount; | ~~~~~~~~~~~~~~~~~~~~~~~~ 477 | ac.state = new double[ac.ncell * ssi[type].size]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 478 | } | ~ 479 | | 480 | void SaveState::ssfree() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 481 | int i, isec, inode; | ~~~~~~~~~~~~~~~~~~~ 482 | for (isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 483 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 484 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 485 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 487 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 488 | } | ~ 489 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 490 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 491 | } | ~ 492 | } | ~ 493 | if (ss.root) { | ~~~~~~~~~~~~~~ 494 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 495 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 496 | delete [] ns.type; | ~~~~~~~~~~~~~~~~~~ 497 | } | ~ 498 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 499 | delete [] ns.state; | ~~~~~~~~~~~~~~~~~~~ 500 | } | ~ 501 | delete ss.root; | ~~~~~~~~~~~~~~~ 502 | } | ~ 503 | if (ss.nnode) { | ~~~~~~~~~~~~~~~ 504 | delete [] ss.ns; | ~~~~~~~~~~~~~~~~ 505 | } | ~ 506 | if (ss.sec) { // got info from an fread but never checked it | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 507 | section_unref(ss.sec); | ~~~~~~~~~~~~~~~~~~~~~~ 508 | } | ~ 509 | } | ~ 510 | if (nsec_) { | ~~~~~~~~~~~~ 511 | delete [] ss_; | ~~~~~~~~~~~~~~ 512 | } | ~ 513 | nsec_ = 0; | ~~~~~~~~~~ 514 | ss_ = NULL; | ~~~~~~~~~~~ 515 | for (i=0; i < nacell_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 516 | if (acell_[i].ncell) { | ~~~~~~~~~~~~~~~~~~~~~~ 517 | delete [] acell_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 518 | acell_[i].state = 0; | ~~~~~~~~~~~~~~~~~~~~ 519 | acell_[i].ncell = 0; | ~~~~~~~~~~~~~~~~~~~~ 520 | } | ~ 521 | } // note we do not destroy the acell_. | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 522 | if (nncs_) { | ~~~~~~~~~~~~ 523 | for (i = 0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 524 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 525 | delete [] ncs_[i].state; | ~~~~~~~~~~~~~~~~~~~~~~~~ 526 | } | ~ 527 | } | ~ 528 | delete [] ncs_; | ~~~~~~~~~~~~~~~ 529 | } | ~ 530 | nncs_ = 0; | ~~~~~~~~~~ 531 | ncs_ = NULL; | ~~~~~~~~~~~~ 532 | if (npss_) { | ~~~~~~~~~~~~ 533 | delete [] pss_; | ~~~~~~~~~~~~~~~ 534 | } | ~ 535 | npss_ = 0; | ~~~~~~~~~~ 536 | pss_ = NULL; | ~~~~~~~~~~~~ 537 | free_tq(); | ~~~~~~~~~~ 538 | if (nprs_) { | ~~~~~~~~~~~~ 539 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 540 | delete prs_[i]; | ~~~~~~~~~~~~~~~ 541 | } | ~ 542 | delete [] prs_; | ~~~~~~~~~~~~~~~ 543 | } | ~ 544 | nprs_ = 0; | ~~~~~~~~~~ 545 | } | ~ 546 | | 547 | void SaveState::save() { | ~~~~~~~~~~~~~~~~~~~~~~~~ 548 | NrnThread* nt; | ~~~~~~~~~~~~~~ 549 | if (!check(false)) { | ~~~~~~~~~~~~~~~~~~~~ 550 | alloc(); | ~~~~~~~~ 551 | } | ~ 552 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 553 | assert(t == nt->_t); | ~~~~~~~~~~~~~~~~~~~~ 554 | } | ~ 555 | t_ = t; | ~~~~~~~ 556 | int inode; | ~~~~~~~~~~ 557 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 558 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 559 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 560 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 561 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 562 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 563 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 564 | } | ~ 565 | if (ss.root) { | ~~~~~~~~~~~~~~ 566 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 567 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 568 | savenode(ns, nd); | ~~~~~~~~~~~~~~~~~ 569 | } | ~ 570 | } | ~ 571 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 572 | saveacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~ 573 | ++j; | ~~~~ 574 | } | ~ 575 | if (nprs_) { | ~~~~~~~~~~~~ 576 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 577 | int i; | ~~~~~~ 578 | assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 579 | for (i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 580 | prs_[i] = prl->item(i)->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 581 | } | ~ 582 | } | ~ 583 | savenet(); | ~~~~~~~~~~ 584 | } | ~ 585 | | 586 | void SaveState::savenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 587 | ns.v = NODEV(nd); | ~~~~~~~~~~~~~~~~~ 588 | int istate = 0; | ~~~~~~~~~~~~~~~ 589 | Prop* p; | ~~~~~~~~ 590 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 591 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 592 | continue; | ~~~~~~~~~ 593 | } | ~ 594 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 595 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 596 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 597 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 598 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 599 | ns.state[istate++] = nd->extnode->v[i]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 600 | } | ~ 601 | }else | ~~~~~ 602 | #endif | ~~~~~~ 603 | { | ~ 604 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 605 | ns.state[istate++] = p->param[ip]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 606 | } | ~ 607 | } | ~ 608 | } | ~ 609 | } | ~ 610 | | 611 | void SaveState::saveacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 612 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 613 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 614 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 615 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 616 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 617 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 618 | (*p++) = d[j]; | ~~~~~~~~~~~~~~ 619 | } | ~ 620 | } | ~ 621 | } | ~ 622 | | 623 | void SaveState::restore(int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 624 | NrnThread* nt; | ~~~~~~~~~~~~~~ 625 | if (!check(true)) { | ~~~~~~~~~~~~~~~~~~~ 626 | hoc_execerror("SaveState:", | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 627 | "Stored state inconsistent with current neuron structure"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 628 | } | ~ 629 | t = t_; | ~~~~~~~ 630 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 631 | nt->_t = t_; | ~~~~~~~~~~~~ 632 | } | ~ 633 | int inode; | ~~~~~~~~~~ 634 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 635 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 636 | Section* sec = ss.sec; | ~~~~~~~~~~~~~~~~~~~~~~ 637 | for (inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 638 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 639 | Node* nd = sec->pnode[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 640 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 641 | } | ~ 642 | if (ss.root) { | ~~~~~~~~~~~~~~ 643 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 644 | Node* nd = sec->parentnode; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 645 | restorenode(ns, nd); | ~~~~~~~~~~~~~~~~~~~~ 646 | } | ~ 647 | } | ~ 648 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 649 | restoreacell(acell_[j], i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 650 | ++j; | ~~~~ 651 | } | ~ 652 | if (type == 1) { return; } | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 653 | PlayRecList* prl = net_cvode_instance_prl(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 654 | // during a local step the PlayRecList is augmented with GLineRecord | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 655 | // assert(nprs_ == prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 656 | assert(nprs_ <= prl->count()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 657 | int i; | ~~~~~~ 658 | for (i = 0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 659 | prs_[i]->savestate_restore(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 660 | } | ~ 661 | restorenet(); | ~~~~~~~~~~~~~ 662 | } | ~ 663 | | 664 | void SaveState::restorenode(NodeState& ns, Node* nd) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 665 | NODEV(nd) = ns.v;; | ~~~~~~~~~~~~~~~~~~ 666 | int istate = 0; | ~~~~~~~~~~~~~~~ 667 | Prop* p; | ~~~~~~~~ 668 | for (p = nd->prop; p; p = p->next) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 669 | if (ssi[p->type].size == 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 670 | continue; | ~~~~~~~~~ 671 | } | ~ 672 | int type = p->type; | ~~~~~~~~~~~~~~~~~~~ 673 | int max = ssi[type].offset + ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 674 | #if EXTRACELLULAR | ~~~~~~~~~~~~~~~~~ 675 | if (type == EXTRACELL) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 676 | for (int i=0; i < nlayer; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 677 | nd->extnode->v[i] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 678 | } | ~ 679 | }else | ~~~~~ 680 | #endif | ~~~~~~ 681 | { | ~ 682 | for (int ip=ssi[type].offset; ip < max; ++ip) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 683 | p->param[ip] = ns.state[istate++]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 684 | } | ~ 685 | } | ~ 686 | } | ~ 687 | } | ~ 688 | | 689 | void SaveState::restoreacell(ACellState& ac, int type) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 690 | Memb_list& ml = memb_list[type]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 691 | int sz = ssi[type].size; | ~~~~~~~~~~~~~~~~~~~~~~~~ 692 | double* p = ac.state; | ~~~~~~~~~~~~~~~~~~~~~ 693 | for (int i = 0; i < ml.nodecount; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 694 | double* d = ml.data[i]; | ~~~~~~~~~~~~~~~~~~~~~~~ 695 | for (int j=0; j < sz; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 696 | d[j] = (*p++); | ~~~~~~~~~~~~~~ 697 | } | ~ 698 | } | ~ 699 | } | ~ 700 | | 701 | void SaveState::read(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 702 | if (!ocf->open(ocf->get_name(), "r")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 703 | hoc_execerror("Couldn't open file for reading:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 704 | } | ~ 705 | nrn_shape_update(); | ~~~~~~~~~~~~~~~~~~~ 706 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 707 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 708 | ssfree(); | ~~~~~~~~~ 709 | char buf[200]; | ~~~~~~~~~~~~~~ 710 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 711 | if (strcmp(buf, "SaveState binary file version 6.0\n") != 0) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 712 | ocf->close(); | ~~~~~~~~~~~~~ 713 | hoc_execerror("Bad SaveState binary file", " Not version 6.0"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 714 | } | ~ 715 | ASSERTfread((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 716 | // fscanf(f, "%d %d\n", &nsec_, &nrootnode_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 717 | // on some os's fscanf leaves file pointer at wrong place for next fread | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 718 | // can check it with ftell(f) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 719 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 720 | sscanf(buf, "%d %d\n", &nsec_, &nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 721 | // to enable comparison of SaveState files, we avoid | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 722 | // putting pointers in the files and instead explicitly read/write | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 723 | // structure elements. | ~~~~~~~~~~~~~~~~~~~~~~ 724 | ss_ = new SecState[nsec_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 725 | fread_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 726 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 727 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 728 | ss.sec = NULL; | ~~~~~~~~~~~~~~ 729 | ss.ns = new NodeState[ss.nnode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 730 | fread_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 731 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 732 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 733 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 734 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 735 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 736 | } | ~ 737 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 738 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 739 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 740 | } | ~ 741 | } | ~ 742 | if (ss.root) { | ~~~~~~~~~~~~~~ 743 | fread_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 744 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 745 | if (ns.nmemb) { | ~~~~~~~~~~~~~~~ 746 | ns.type = new int[ns.nmemb]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 747 | ASSERTfread((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 748 | } | ~ 749 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 750 | ns.state = new double[ns.nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 751 | ASSERTfread((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 752 | } | ~ 753 | } | ~ 754 | } | ~ 755 | int n = 0; | ~~~~~~~~~~ 756 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 757 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 758 | assert(n == nacell_); | ~~~~~~~~~~~~~~~~~~~~~ 759 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 760 | int nt = 0, nc = 0, ns = 0; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 761 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 762 | nrn_assert(sscanf(buf, "%d %d %d\n", &nt, &nc, &ns) == 3); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 763 | assert(nt == i && nc == memb_list[i].nodecount); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 764 | assert(ns == nc * ssi[i].size); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 765 | acell_[j].ncell = nc; | ~~~~~~~~~~~~~~~~~~~~~ 766 | acell_[j].state = new double[ns]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 767 | ASSERTfread((char*)acell_[j].state, sizeof(double), ns, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 768 | ++j; | ~~~~ 769 | } | ~ 770 | ASSERTfgets(buf, 20, f); | ~~~~~~~~~~~~~~~~~~~~~~~~ 771 | sscanf(buf, "%d\n", &nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 772 | if (nprs_) { | ~~~~~~~~~~~~ 773 | prs_ = new PlayRecordSave*[nprs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 774 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 775 | prs_[i] = PlayRecord::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776 | } | ~ 777 | } | ~ 778 | readnet(f); | ~~~~~~~~~~~ 779 | if (close) { | ~~~~~~~~~~~~ 780 | ocf->close(); | ~~~~~~~~~~~~~ 781 | } | ~ 782 | } | ~ 783 | | 784 | void SaveState::write(OcFile* ocf, bool close) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 785 | if (!ocf->open(ocf->get_name(), "w")) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 786 | hoc_execerror("Couldn't open file for writing:", ocf->get_name()); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 787 | } | ~ 788 | BinaryMode(ocf) | ~~~~~~~~~~~~~~~ 789 | FILE* f = ocf->file(); | ~~~~~~~~~~~~~~~~~~~~~~ 790 | fprintf(f, "SaveState binary file version 6.0\n"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 791 | ASSERTfwrite((char*)&t_, sizeof(double), 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 792 | fprintf(f, "%d %d\n", nsec_, nroot_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 793 | fwrite_SecState(ss_, nsec_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 794 | for (int isec=0; isec < nsec_; ++isec) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 795 | SecState& ss = ss_[isec]; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 796 | fwrite_NodeState(ss.ns, ss.nnode, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 797 | for (int inode = 0; inode < ss.nnode; ++inode) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 798 | NodeState& ns = ss.ns[inode]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 799 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 800 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 801 | } | ~ 802 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 803 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 804 | } | ~ 805 | } | ~ 806 | if (ss.root) { | ~~~~~~~~~~~~~~ 807 | fwrite_NodeState(ss.root, 1, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 808 | NodeState& ns = *ss.root; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 809 | if (ns.nmemb){ | ~~~~~~~~~~~~~~ 810 | ASSERTfwrite((char*)ns.type, sizeof(int), ns.nmemb, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 811 | } | ~ 812 | if (ns.nstate) { | ~~~~~~~~~~~~~~~~ 813 | ASSERTfwrite((char*)ns.state, sizeof(double), ns.nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 814 | } | ~ 815 | } | ~ 816 | } | ~ 817 | fprintf(f, "%d\n", nacell_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 818 | for (int i=0, j=0; i < n_memb_func; ++i) if (nrn_is_artificial_[i]) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 819 | int sz = acell_[j].ncell * ssi[i].size; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 820 | fprintf(f, "%d %d %d\n", acell_[j].type, acell_[j].ncell, sz); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 821 | ASSERTfwrite((char*)acell_[j].state, sizeof(double), sz, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 822 | ++j; | ~~~~ 823 | } | ~ 824 | fprintf(f, "%d\n", nprs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 825 | for (int i=0; i < nprs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 826 | fprintf(f, "%d %d\n", prs_[i]->pr_->type(), i); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 827 | prs_[i]->savestate_write(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 828 | } | ~ 829 | writenet(f); | ~~~~~~~~~~~~ 830 | if (close) { | ~~~~~~~~~~~~ 831 | ocf->close(); | ~~~~~~~~~~~~~ 832 | } | ~ 833 | } | ~ 834 | | 835 | void SaveState::savenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 836 | int i, j, n; | ~~~~~~~~~~~~ 837 | double* w; | ~~~~~~~~~~ 838 | hoc_Item* q; | ~~~~~~~~~~~~ 839 | Object* ob; | ~~~~~~~~~~~ 840 | NetCon* d; | ~~~~~~~~~~ 841 | PreSyn* ps; | ~~~~~~~~~~~ 842 | i = 0; | ~~~~~~ 843 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 844 | ob = OBJ(q); | ~~~~~~~~~~~~ 845 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 846 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 847 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 848 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 849 | w[j] = d->weight_[j]; | ~~~~~~~~~~~~~~~~~~~~~ 850 | } | ~ 851 | ++i; | ~~~~ 852 | } | ~ 853 | i = 0; | ~~~~~~ 854 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 855 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 856 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 857 | pss_[i].flag = ps->flag_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 858 | pss_[i].valthresh = ps->valthresh_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 859 | pss_[i].valold = ps->valold_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 860 | pss_[i].told = ps->told_; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 861 | ++i; | ~~~~ 862 | } | ~ 863 | alloc_tq(); | ~~~~~~~~~~~ 864 | tqcnt_ = 0; | ~~~~~~~~~~~ 865 | NrnThread* nt; | ~~~~~~~~~~~~~~ 866 | FOR_THREADS(nt) { | ~~~~~~~~~~~~~~~~~ 867 | TQueue* tq = net_cvode_instance_event_queue(nt); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 868 | this_savestate = this; callback_mode = 1; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 869 | tq->forall_callback(tqcallback); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 870 | } | ~ 871 | } | ~ 872 | | 873 | void SaveState::tqcount(const TQItem*, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 874 | ++tqcnt_; | ~~~~~~~~~ 875 | } | ~ 876 | | 877 | void SaveState::tqsave(const TQItem* q, int) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 878 | DiscreteEvent* de = (DiscreteEvent*)q->data_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 879 | tqs_->tdeliver[tqcnt_] = q->t_; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 880 | tqs_->items[tqcnt_] = de->savestate_save(); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 881 | ++tqcnt_; | ~~~~~~~~~ 882 | } | ~ 883 | | 884 | void SaveState::restorenet() { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 885 | int i, j, n; | ~~~~~~~~~~~~ 886 | double* w; | ~~~~~~~~~~ 887 | hoc_Item* q; | ~~~~~~~~~~~~ 888 | Object* ob; | ~~~~~~~~~~~ 889 | NetCon* d; | ~~~~~~~~~~ 890 | PreSyn* ps; | ~~~~~~~~~~~ 891 | // NetCon's | ~~~~~~~~~~~ 892 | i = 0; | ~~~~~~ 893 | ITERATE(q, nct->olist) { | ~~~~~~~~~~~~~~~~~~~~~~~~ 894 | ob = OBJ(q); | ~~~~~~~~~~~~ 895 | d = (NetCon*)ob->u.this_pointer; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896 | n = ncs_[i].nstate; | ~~~~~~~~~~~~~~~~~~~ 897 | w = ncs_[i].state; | ~~~~~~~~~~~~~~~~~~ 898 | for (j=0; j < n; ++j) { | ~~~~~~~~~~~~~~~~~~~~~~~ 899 | d->weight_[j] = w[j]; | ~~~~~~~~~~~~~~~~~~~~~ 900 | } | ~ 901 | ++i; | ~~~~ 902 | } | ~ 903 | // PreSyn's | ~~~~~~~~~~~ 904 | i = 0; | ~~~~~~ 905 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 906 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 907 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 908 | ps->flag_ = pss_[i].flag; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 909 | ps->valthresh_ = pss_[i].valthresh; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 910 | ps->valold_ = pss_[i].valold; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 911 | ps->told_ = pss_[i].told; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 912 | ++i; | ~~~~ 913 | } | ~ 914 | | 915 | // event queue | ~~~~~~~~~~~~~~ 916 | // clear it | ~~~~~~~~~~~ 917 | clear_event_queue(); | ~~~~~~~~~~~~~~~~~~~~ 918 | // restore it | ~~~~~~~~~~~~~ 919 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 920 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 921 | tqs_->items[i]->savestate_restore(tqs_->tdeliver[i], net_cvode_instance); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 922 | } | ~ 923 | } | ~ 924 | | 925 | void SaveState::readnet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 926 | free_tq(); | ~~~~~~~~~~ 927 | char buf[200]; | ~~~~~~~~~~~~~~ 928 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 929 | sscanf(buf, "%d\n", &nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 930 | if (nncs_ != 0) { | ~~~~~~~~~~~~~~~~~ 931 | ncs_ = new NetConState[nncs_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 932 | } | ~ 933 | int i, n, type; | ~~~~~~~~~~~~~~~ 934 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 935 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 936 | sscanf(buf, "%d %d\n", &ncs_[i].object_index, &ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 937 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 938 | ncs_[i].state = new double[ncs_[i].nstate]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 939 | ASSERTfread((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 940 | } | ~ 941 | } | ~ 942 | // PreSyn's | ~~~~~~~~~~~ 943 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 944 | sscanf(buf, "%d\n", &npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 945 | if (npss_ != 0) { | ~~~~~~~~~~~~~~~~~ 946 | pss_ = new PreSynState[npss_]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 947 | ASSERTfread((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 948 | PreSyn* ps; | ~~~~~~~~~~~ 949 | i = 0; | ~~~~~~ 950 | hoc_Item* q; | ~~~~~~~~~~~~ 951 | if (net_cvode_instance_psl()) ITERATE(q, net_cvode_instance_psl()) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 952 | ps = (PreSyn*)VOIDITM(q); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 953 | ps->hi_index_ = i; | ~~~~~~~~~~~~~~~~~~ 954 | ++i; | ~~~~ 955 | } | ~ 956 | assert(npss_ == i); | ~~~~~~~~~~~~~~~~~~~ 957 | } | ~ 958 | | 959 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 960 | sscanf(buf, "%d\n", &n); | ~~~~~~~~~~~~~~~~~~~~~~~~ 961 | tqs_->nstate = n; | ~~~~~~~~~~~~~~~~~ 962 | if (n) { | ~~~~~~~~ 963 | tqs_->items = new DiscreteEvent*[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 964 | tqs_->tdeliver = new double[n]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 965 | ASSERTfread((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 966 | for (i=0; i < n; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~ 967 | DiscreteEvent* de = NULL; | ~~~~~~~~~~~~~~~~~~~~~~~~~ 968 | ASSERTfgets(buf, 200, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~ 969 | sscanf(buf, "%d\n", &type); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 970 | switch(type) { | ~~~~~~~~~~~~~~ 971 | case DiscreteEventType: | ~~~~~~~~~~~~~~~~~~~~~~~ 972 | de = DiscreteEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 973 | break; | ~~~~~~ 974 | case TstopEventType: | ~~~~~~~~~~~~~~~~~~~~ 975 | de = TstopEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 976 | break; | ~~~~~~ 977 | case NetConType: | ~~~~~~~~~~~~~~~~ 978 | de = NetCon::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 979 | break; | ~~~~~~ 980 | case SelfEventType: | ~~~~~~~~~~~~~~~~~~~ 981 | de = SelfEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 982 | break; | ~~~~~~ 983 | case PreSynType: | ~~~~~~~~~~~~~~~~ 984 | de = PreSyn::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 985 | break; | ~~~~~~ 986 | case HocEventType: | ~~~~~~~~~~~~~~~~~~ 987 | de = HocEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 988 | break; | ~~~~~~ 989 | case PlayRecordEventType: | ~~~~~~~~~~~~~~~~~~~~~~~~~ 990 | de = PlayRecordEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 991 | break; | ~~~~~~ 992 | case NetParEventType: | ~~~~~~~~~~~~~~~~~~~~~ 993 | de = NetParEvent::savestate_read(f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 994 | break; | ~~~~~~ 995 | default: | ~~~~~~~~ 996 | hoc_execerror("SaveState::readnet", "Unimplemented DiscreteEvent type"); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 997 | break; | ~~~~~~ 998 | } | ~ 999 | tqs_->items[i] = de; | ~~~~~~~~~~~~~~~~~~~~ 1000 | } | ~ 1001 | } | ~ 1002 | } | ~ 1003 | | 1004 | void SaveState::writenet(FILE* f) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1005 | fprintf(f, "%d\n", nncs_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1006 | int i, n; | ~~~~~~~~~ 1007 | for (i=0; i < nncs_; ++i) { | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1008 | fprintf(f, "%d %d\n", ncs_[i].object_index, ncs_[i].nstate); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1009 | if (ncs_[i].nstate) { | ~~~~~~~~~~~~~~~~~~~~~ 1010 | ASSERTfwrite((char*)ncs_[i].state, sizeof(double), ncs_[i].nstate, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1011 | } | ~ 1012 | } | ~ 1013 | fprintf(f, "%d\n", npss_); | ~~~~~~~~~~~~~~~~~~~~~~~~~~ 1014 | if (npss_) { | ~~~~~~~~~~~~ 1015 | ASSERTfwrite((char*)pss_, sizeof(PreSynState), npss_, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1016 | } | ~ 1017 | n = tqs_->nstate; | ~~~~~~~~~~~~~~~~~ 1018 | fprintf(f, "%d\n", n); | ~~~~~~~~~~~~~~~~~~~~~~ 1019 | if (n) { | ~~~~~~~~ 1020 | ASSERTfwrite((char*)tqs_->tdeliver, sizeof(double), n, f); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnassrt.h:23:33: note: in definition of macro 'nrn_assert' 23 | # define nrn_assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1020:17: note: in expansion of macro 'ASSERTfwrite' 1020 | ASSERTfwrite((char*)tqs_->tdeliver, sizeof(double), n, f); | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp: In member function 'void SaveState::allocnet()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/savstate.cpp:1079:16: warning: unused variable 'n' [-Wunused-variable] 1079 | int i, n; | ^ [ 29%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/secbrows.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnoc2iv.h:8, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:18: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'OcSectionBrowser::OcSectionBrowser(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:131:32: warning: unused variable 'sec' [-Wunused-variable] 131 | ForAllSections(sec) //{ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:314:48: note: in definition of macro 'ForAllSections' 314 | ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'SectionBrowserImpl::SectionBrowserImpl()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:365:24: warning: unused variable 'sec' [-Wunused-variable] 365 | ForAllSections(sec) //{ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:314:48: note: in definition of macro 'ForAllSections' 314 | ITERATE(qsec, section_list) { Section* sec = hocSEC(qsec); | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In constructor 'SectionBrowser::SectionBrowser()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:392:20: warning: unused variable 'lk' [-Wunused-variable] 392 | LayoutKit& lk = *LayoutKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:393:20: warning: unused variable 'wk' [-Wunused-variable] 393 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In static member function 'static void SectionBrowser::make_section_browser()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:440:20: warning: unused variable 'wk' [-Wunused-variable] 440 | WidgetKit& wk = *WidgetKit::instance(); | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp: In static member function 'static void PointProcessBrowser::make_point_process_browser(OcList*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/secbrows.cpp:500:20: warning: unused variable 'wk' [-Wunused-variable] 500 | WidgetKit& wk = *WidgetKit::instance(); | ^~ [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/shape.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/shape.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void OcShape::select_section(Section*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:743:18: warning: unused variable 's' [-Wunused-variable] 743 | Section* s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:744:22: warning: unused variable 'c' [-Wunused-variable] 744 | const Color* c; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::observe(SectionList*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:832:23: warning: unused variable 'cnt' [-Wunused-variable] 832 | GlyphIndex i, cnt; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::transform3d(Rubberband*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1000:15: warning: unused variable 'x' [-Wunused-variable] 1000 | Coord x, y; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1000:18: warning: unused variable 'y' [-Wunused-variable] 1000 | Coord x, y; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeScene::wholeplot(ivCoord&, ivCoord&, ivCoord&, ivCoord&) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1025:17: warning: unused variable 'j' [-Wunused-variable] 1025 | long i, j, n = sg_->count(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In destructor 'virtual ShapeSection::~ShapeSection()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1294:13: warning: unused variable 'n' [-Wunused-variable] 1294 | int n = sec_->npt3d -1; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::set_range_variable(Symbol*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1514:14: warning: variable 'any' set but not used [-Wunused-but-set-variable] 1514 | bool any = false; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::draw(ivCanvas*, const ivAllocation&) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1554:15: warning: unused variable 'e' [-Wunused-variable] 1554 | float e = 1e-2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'virtual void ShapeSection::fast_draw(ivCanvas*, ivCoord, ivCoord, bool) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1612:16: warning: variable 'a3dold' set but not used [-Wunused-but-set-variable] 1612 | double a3dold; // the arc length at i3d-1 | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'void ShapeSection::fastidious_draw(ivCanvas*, const ivColor*, int, float, float) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1698:15: warning: unused variable 'len' [-Wunused-variable] 1698 | float len, f1, f2, d, x1, x2, y1, y2, a, aa; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'ShapeSection::fast_draw(ivCanvas*, float, float, bool) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:1631:54: warning: 'cv' may be used uninitialized in this function [-Wmaybe-uninitialized] 1631 | color = cv->get_color(*pvar_[iseg]); | ~~~~~~~~~~~~~^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp: In member function 'ShapeSection::arc_position(float, float) const': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shape.cpp:2003:51: warning: 'ic' may be used uninitialized in this function [-Wmaybe-uninitialized] 2003 | len = MyMath::norm2(x_[ic] - x_[ic+1], y_[ic] - y_[ic+1]); | ^~ [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp: In member function 'ivGlyph* ColorValue::make_glyph()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp:1108:20: warning: unused variable 'wk' [-Wunused-variable] 1108 | WidgetKit& wk = *WidgetKit::instance(); | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:13, from /builddir/build/BUILD/nrn-7.8.1/src/oc/classreg.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp:2: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/shapeplt.cpp: In member function 'Hinton::request(ivRequisition&) const': /builddir/build/BUILD/nrn-7.8.1/src/oc/hocassrt.h:19:22: warning: 'nonnull' argument 'this' compared to NULL [-Wnonnull-compare] 19 | # define assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file %s, line %d\n", __FILE__,__LINE__);hoc_execerror(#ex, (char *)0);}} | ^~ [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/singlech.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/singlech.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp: In member function 'RangeVarPlot::fill_pointers()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/spaceplt.cpp:531:24: warning: 'sym' may be used uninitialized in this function [-Wmaybe-uninitialized] 531 | does_exist = nrn_exists(sym, node_exact(sec, hoc_ac_)); | ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 30%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/splitcell.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp: In function 'void splitcell_compute()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/splitcell.cpp:109:13: warning: unused variable 'i' [-Wunused-variable] 109 | int i; | ^ [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/symdir.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/symdir.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/symdir.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/symdir.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp: In constructor 'SymDirectory::SymDirectory(Object*)': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp:172:13: warning: unused variable 'suffix' [-Wunused-variable] 172 | int suffix = '.'; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp: In member function 'void SymDirectoryImpl::load_section()': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/symdir.cpp:549:13: warning: unused variable 'n' [-Wunused-variable] 549 | int n = sec->nnode; | ^ [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/tqueue.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp:391, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:133, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c: In function 'TQItem* sptq_spenq(TQItem*, SPTREE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c:104:18: warning: unused variable 'Sct' [-Wunused-variable] 104 | register int Sct; /* Strcmp value */ | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c: In function 'TQItem* sptq_spenqprior(TQItem*, SPTREE*)': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptree.c:329:18: warning: unused variable 'Sct' [-Wunused-variable] 329 | register int Sct; /* Strcmp value */ | ^~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:133, from /builddir/build/BUILD/nrn-7.8.1/src/nrniv/tqueue.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/sptbinq.cpp:56:13: warning: 'void chk(TQItem*, int)' defined but not used [-Wunused-function] 56 | static void chk(TQItem* b, int level) { | ^~~ [ 31%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/vrecord.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -DOOP=1 -DUSEBBS=1 -DUSECVODE=1 -DUSEMATRIX=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/vrecord.cpp [ 31%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'nrn_rootnode_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:1654:18: warning: unused variable 'nde' [-Wunused-variable] 1654 | Extnode* nde; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'ismembrane': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:2254:15: warning: unused variable 'p' [-Wunused-variable] 2254 | Prop *p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c: In function 'section_exists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabcode.c:2466:21: warning: unused variable 'cp' [-Wunused-variable] 2466 | char *str, *cp, buf[100]; | ^~ [ 31%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/capac.c [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c: In function 'activclamp_lhs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/clamp.c:180:16: warning: unused variable 'v' [-Wunused-variable] 180 | double v; | ^ [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_pop_defer': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:237:17: warning: unused variable 'obj' [-Wunused-variable] 237 | Object* obj; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'frameobj_clean': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:273:16: warning: unused variable 'narg' [-Wunused-variable] 273 | int i, narg; | ^~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/code.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_Argtype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1509:13: warning: unused variable 'narg' [-Wunused-variable] 1509 | int narg, iarg, type, itype=0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_autoobject': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1760:18: warning: unused variable 'obp' [-Wunused-variable] 1760 | Object **obp; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:1758:13: warning: unused variable 'i' [-Wunused-variable] 1758 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c: In function 'hoc_delete_symbol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/code.c:2507:14: warning: unused variable 'sp' [-Wunused-variable] 2507 | * sp; | ^~ [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:25:28: warning: missing braces around initializer [-Wmissing-braces] 25 | static DoubScal scdoub[] = { /* just a template*/ | ^ 26 | "ci0_na_ion", 0, | { } 27 | "co0_na_ion", 0, | { } 28 | 0, 0 | { 29 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'ion_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:521:16: warning: unused variable 'vnode' [-Wunused-variable] 521 | Node** vnode = ml->nodelist; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'ion_init': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:543:16: warning: unused variable 'vnode' [-Wunused-variable] 543 | Node** vnode = ml->nodelist; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c: In function 'second_order_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/eion.c:605:13: warning: unused variable 'j' [-Wunused-variable] 605 | int j, i, i2; | ^ [ 32%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:26:33: warning: missing braces around initializer [-Wmissing-braces] 26 | static HocParmLimits limits[] = { | ^ 27 | "xraxial", 1e-9, 1e15, | { { }} 28 | "xg", 0., 1e15, | { { }} 29 | "xc", 0., 1e15, | { { }} 30 | 0,0.,0. | { { 31 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:33:31: warning: missing braces around initializer [-Wmissing-braces] 33 | static HocParmUnits units[] = { | ^ 34 | "xraxial", "MOhm/cm", | { } 35 | "xg", "S/cm2", | { } 36 | "xc", "uF/cm2", | { } 37 | "e_extracellular", "mV", | { } 38 | "vext", "mV", | { } 39 | "i_membrane", "mA/cm2", | { } 40 | 0,0 | { 41 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'nrn_update_2d': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:94:16: warning: variable 'cfac' set but not used [-Wunused-but-set-variable] 94 | double cfac; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:90:20: warning: unused variable 'secondorder' [-Wunused-variable] 90 | extern int secondorder; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'extcell_node_create': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:197:13: warning: unused variable 'i' [-Wunused-variable] 197 | int i, j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c: In function 'extcell_2d_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:240:15: warning: unused variable 'p' [-Wunused-variable] 240 | Prop* p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:239:18: warning: unused variable 'nde' [-Wunused-variable] 239 | Extnode *nde; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:238:15: warning: unused variable 'nd' [-Wunused-variable] 238 | Node *nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/extcelln.c:237:16: warning: unused variable 'j' [-Wunused-variable] 237 | int i, j; | ^ [ 33%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_daspk_init_step': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:284:13: warning: unused variable 'i' [-Wunused-variable] 284 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_fixed_step': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:301:13: warning: unused variable 'i' [-Wunused-variable] 301 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'fcurrent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:607:13: warning: unused variable 'i' [-Wunused-variable] 607 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_ba': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:1015:21: warning: unused variable 'type' [-Wunused-variable] 1015 | int type = tbl->bam->type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c: In function 'nrn_finitialize': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fadvance.c:783:9: warning: '_nt' is used uninitialized [-Wuninitialized] 783 | nrn_random_play(_nt); | ^~~~~~~~~~~~~~~~~~~~ [ 33%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/fstim.c [ 33%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c: In function 'fit_praxis': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c:101:32: warning: variable 'nvarsav' set but not used [-Wunused-but-set-variable] 101 | long int printmodesav, nvarsav; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c: In function 'efun': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocprax.c:279:13: warning: unused variable 'i' [-Wunused-variable] 279 | int i; | ^ [ 33%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocusr.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hocusr.c:9, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hocusr.c:6: /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:32:30: warning: missing braces around initializer [-Wmissing-braces] 32 | static VoidFunc function[] = { | ^ 33 | 34 | "node_data", node_data, | { } 35 | "disconnect", disconnect, | { } 36 | "batch_run", batch_run, | { } 37 | "batch_save", batch_save, | { } 38 | "pt3dclear", pt3dclear, | { } 39 | "pt3dadd", pt3dadd, | { } 40 | "n3d", n3d, | { } 41 | "x3d", x3d, | { } 42 | "y3d", y3d, | { } 43 | "z3d", z3d, | { } 44 | "arc3d", arc3d, | { } 45 | "diam3d", diam3d, | { } 46 | "pt3dinsert", pt3dinsert, | { } 47 | "pt3dremove", pt3dremove, | { } 48 | "pt3dchange", pt3dchange, | { } 49 | "define_shape", define_shape, | { } 50 | "pt3dconst", pt3dconst, | { } 51 | "pt3dstyle", pt3dstyle, | { } 52 | "spine3d", spine3d, | { } 53 | "setSpineArea", setSpineArea, | { } 54 | "getSpineArea", getSpineArea, | { } 55 | "area", area, | { } 56 | "ri", ri, | { } 57 | "initnrn", initnrn, | { } 58 | "topology", nrnhoc_topology, | { } 59 | "fadvance", fadvance, | { } 60 | "distance", distance, | { } 61 | "finitialize", finitialize, | { } 62 | "fstim", fstim, | { } 63 | "fstimi", fstimi, | { } 64 | "ion_style", ion_style, | { } 65 | "ion_register", ion_register, | { } 66 | "ion_charge", ion_charge, | { } 67 | "nernst", nernst, | { } 68 | "ghk", ghk, | { } 69 | "section_owner", section_owner, | { } 70 | "make_mechanism", make_mechanism, | { } 71 | "make_pointprocess", make_pointprocess, | { } 72 | "nrnpython", nrnpython, | { } 73 | "fsyn", fsyn, | { } 74 | "fsyng", fsyng, | { } 75 | "fsyni", fsyni, | { } 76 | "fclamp", fclamp, | { } 77 | "fclampi", fclampi, | { } 78 | "fclampv", fclampv, | { } 79 | "prstim", prstim, | { } 80 | "fcurrent", fcurrent, | { } 81 | "fmatrix", fmatrix, | { } 82 | "frecord_init", frecord_init, | { } 83 | "issection", issection, | { } 84 | "ismembrane", ismembrane, | { } 85 | "sectionname", sectionname, | { } 86 | "psection", psection, | { } 87 | "pop_section", pop_section, | { } 88 | "push_section", push_section, | { } 89 | "section_exists", section_exists, | { } 90 | "delete_section", delete_section, | { } 91 | "fit_praxis", fit_praxis, | { } 92 | "attr_praxis", attr_praxis, | { } 93 | "pval_praxis", pval_praxis, | { } 94 | "stop_praxis", stop_praxis, | { } 95 | "keep_nseg_parm", keep_nseg_parm, | { } 96 | "nrnallsectionmenu", nrnallsectionmenu, | { } 97 | "nrnallpointmenu", nrnallpointmenu, | { } 98 | "nrnsecmenu", nrnsecmenu, | { } 99 | "nrnglobalmechmenu", nrnglobalmechmenu, | { } 100 | "nrnmechmenu", nrnmechmenu, | { } 101 | "nrnpointmenu", nrnpointmenu, | { } 102 | "this_section", this_section, | { } 103 | "this_node", this_node, | { } 104 | "parent_section", parent_section, | { } 105 | "parent_node", parent_node, | { } 106 | "parent_connection", parent_connection, | { } 107 | "section_orientation", section_orientation, | { } 108 | 0, 0 | { 109 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:114:13: warning: missing braces around initializer [-Wmissing-braces] 114 | } scint[] = { | ^ 115 | 116 | "secondorder", &secondorder, | { } 117 | "diam_changed", &diam_changed, | { } 118 | "nrn_shape_changed_", &nrn_shape_changed_, | { } 119 | "nrn_netrec_state_adjust", &nrn_netrec_state_adjust, | { } 120 | "nrn_sparse_partrans", &nrn_sparse_partrans, | { } 121 | "stoprun", &stoprun, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:129:12: warning: missing braces around initializer [-Wmissing-braces] 129 | } vint[] = { | ^ 130 | 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:137:15: warning: missing braces around initializer [-Wmissing-braces] 137 | } scfloat[] = { | ^ 138 | 139 | 0, 0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:146:14: warning: missing braces around initializer [-Wmissing-braces] 146 | } vfloat[] = { | ^ 147 | 148 | 0,0,0 | { 149 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:152:21: warning: missing braces around initializer [-Wmissing-braces] 152 | DoubScal scdoub[] = { | ^ 153 | 154 | "clamp_resist", &clamp_resist, | { } 155 | "celsius", &celsius, | { } 156 | 0,0 | { 157 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:160:19: warning: missing braces around initializer [-Wmissing-braces] 160 | DoubVec vdoub[] = { | ^ 161 | 162 | 0, 0, 0 | { 163 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:170:14: warning: missing braces around initializer [-Wmissing-braces] 170 | } ardoub[] = { | ^ 171 | 172 | 0, 0, 0, 0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc/hocusr.h:181:15: warning: missing braces around initializer [-Wmissing-braces] 181 | } thredim[] = { | ^ 182 | 183 | 0, 0, 0, 0, 0 | { 184 | }; | } [ 33%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_init.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_init.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:34:16: warning: missing braces around initializer [-Wmissing-braces] 34 | } keywords[] = { | ^ 35 | "proc", parsePROC, | { } 36 | "func", FUNC, | { } 37 | "obfunc", HOCOBJFUNC, | { } 38 | "return", RETURN, | { } 39 | "break", BREAK, | { } 40 | "continue", CONTINUE, | { } 41 | "stop", STOPSTMT, | { } 42 | "if", IF, | { } 43 | "else", ELSE, | { } 44 | "while", WHILE, | { } 45 | "for", FOR, | { } 46 | "print", PRINT, | { } 47 | "delete", parseDELETE, | { } 48 | "read", READ, | { } 49 | "debug", DEBUG, | { } 50 | "double", parseDOUBLE, | { } 51 | "em", EDIT, | { } 52 | "depvar", DEPENDENT, | { } 53 | "eqn", EQUATION, | { } 54 | "local", LOCAL, | { } 55 | "localobj", LOCALOBJ, | { } 56 | "strdef", STRDEF, | { } 57 | "parallel", PARALLEL, | { } 58 | "help", HELP, | { } 59 | "iterator", ITERKEYWORD, | { } 60 | "iterator_statement", ITERSTMT, | { } 61 | #if CABLE 62 | "create", SECTIONKEYWORD, | { } 63 | "connect", CONNECTKEYWORD, | { } 64 | "setpointer", SETPOINTERKEYWORD, | { } 65 | "access", ACCESSKEYWORD, | { } 66 | "insert", INSERTKEYWORD, | { } 67 | "uninsert", UNINSERTKEYWORD, | { } 68 | "forall", FORALL, | { } 69 | "ifsec", IFSEC, | { } 70 | "forsec", FORSEC, | { } ...... 73 | "begintemplate", BEGINTEMPLATE, | { } 74 | "endtemplate", ENDTEMPLATE, | { } 75 | "objectvar", OBJVARDECL, | { } 76 | "objref", OBJVARDECL, | { } 77 | "public", PUBLICDECL, | { } 78 | "external", EXTERNALDECL, | { } 79 | "new", NEW, | { } 80 | #endif 81 | 0, 0 | { 82 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:86:14: warning: missing braces around initializer [-Wmissing-braces] 86 | } consts[] = { | ^ 87 | "PI", 3.14159265358979323846, | { } 88 | "E", 2.71828182845904523536, | { } 89 | "GAMMA",0.57721566490153286060, /* Euler */ | { } 90 | "DEG", 57.29577951308232087680, /* deg/radian */ | { } 91 | "PHI", 1.61803398874989484820, /* golden ratio */ | { } 92 | #if defined(LegacyFR) && LegacyFR == 1 93 | "FARADAY", 96485.309, /*coulombs/mole*/ | { } 94 | "R", 8.31441, /*molar gas constant, joules/mole/deg-K*/ | { } ...... 101 | 0, 0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:107:16: warning: missing braces around initializer [-Wmissing-braces] 107 | } builtins[] = { | ^ 108 | "sin", sin, | { } 109 | "cos", cos, | { } 110 | "atan", atan, | { } 111 | "tanh", tanh, | { } 112 | "log", Log, /* checks argument */ | { } 113 | "log10",Log10, /* checks argument */ | { } 114 | "exp", hoc1_Exp, /* checks argument */ | { } 115 | "sqrt", Sqrt, /* checks argument */ | { } 116 | "int", integer, | { } ...... 122 | "abs", fabs, | { } 123 | "erf", erf, | { } 124 | "erfc", erfc, | { } 125 | #endif 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:131:17: warning: missing braces around initializer [-Wmissing-braces] 131 | } fun_bltin[] = { | ^ 132 | "atan2", hoc_atan2, | { } 133 | "system", hoc_System, | { } 134 | "prmat", hoc_Prmat, | { } 135 | "solve", hoc_solve, | { } 136 | "eqinit", hoc_eqinit, | { } 137 | "plt", hoc_Plt, | { } 138 | "axis", hoc_axis, | { } 139 | "plot", hoc_Plot, | { } 140 | "plotx", hoc_plotx, | { } 141 | "ploty", hoc_ploty, | { } 142 | "regraph", hoc_regraph, | { } 143 | "symbols", hoc_symbols, | { } 144 | "printf", hoc_PRintf, | { } 145 | "xred", hoc_Xred, | { } 146 | "sred", hoc_Sred, | { } 147 | "ropen", hoc_ropen, | { } 148 | "wopen", hoc_wopen, | { } 149 | "xopen", hoc_xopen, | { } 150 | "hoc_stdout", hoc_stdout, | { } 151 | "chdir", hoc_Chdir, | { } 152 | "fprint", hoc_Fprint, | { } 153 | "fscan", hoc_Fscan, | { } 154 | "sscanf", hoc_sscanf, | { } 155 | "sprint", hoc_Sprint, | { } 156 | "graph", hoc_Graph, | { } 157 | "graphmode", hoc_Graphmode, | { } 158 | "fmenu", hoc_fmenu, | { } 159 | "lw", hoc_Lw, | { } 160 | "getstr", hoc_Getstr, | { } 161 | "strcmp", hoc_Strcmp, | { } 162 | "setcolor", hoc_Setcolor, | { } 163 | "startsw", hoc_startsw, | { } 164 | "stopsw", hoc_stopsw, | { } 165 | "object_id", hoc_object_id, | { } 166 | "allobjectvars", hoc_allobjectvars, | { } 167 | "allobjects", hoc_allobjects, | { } 168 | "xpanel", hoc_xpanel, | { } 169 | "xbutton", hoc_xbutton, | { } 170 | "xcheckbox", hoc_xcheckbox, | { } 171 | "xstatebutton", hoc_xstatebutton, | { } 172 | "xlabel", hoc_xlabel, | { } 173 | "xmenu", hoc_xmenu, | { } 174 | "xvalue", hoc_xvalue, | { } 175 | "xpvalue", hoc_xpvalue, | { } 176 | "xradiobutton", hoc_xradiobutton, | { } 177 | "xfixedvalue", hoc_xfixedvalue, | { } 178 | "xvarlabel", hoc_xvarlabel, | { } 179 | "xslider", hoc_xslider, | { } 180 | "boolean_dialog", hoc_boolean_dialog, | { } 181 | "continue_dialog", hoc_continue_dialog, | { } 182 | "string_dialog", hoc_string_dialog, | { } 183 | "doEvents", hoc_single_event_run, | { } 184 | "doNotify", hoc_notify_iv, | { } 185 | "nrniv_bind_thread", nrniv_bind_thread, | { } 186 | "ivoc_style", ivoc_style, | { } 187 | "numarg", hoc_Numarg, | { } 188 | "argtype", hoc_Argtype, | { } 189 | "hoc_pointer_", hoc_pointer, /* for internal use */ | { } 190 | "nrn_mallinfo", hoc_mallinfo, | { } 191 | "execute", hoc_exec_cmd, | { } 192 | "execute1", hoc_execute1, | { } 193 | "load_proc", hoc_load_proc, | { } 194 | "load_func", hoc_load_func, | { } 195 | "load_template", hoc_load_template, | { } 196 | "load_file", hoc_load_file, | { } 197 | "load_java", hoc_load_java, | { } 198 | "unix_mac_pc", hoc_unix_mac_pc, | { } 199 | "show_winio", hoc_show_winio, | { } 200 | "nrn_load_dll", hoc_nrn_load_dll, | { } 201 | "machine_name", hoc_machine_name, | { } 202 | "saveaudit", hoc_Saveaudit, | { } 203 | "retrieveaudit", hoc_Retrieveaudit, | { } 204 | "coredump_on_error", hoc_coredump_on_error, | { } 205 | "checkpoint", hoc_checkpoint, | { } 206 | "quit", hoc_quit, | { } 207 | "object_push", hoc_object_push, | { } 208 | "object_pop", hoc_object_pop, | { } 209 | "pwman_place", hoc_pwman_place, | { } 210 | "save_session", hoc_save_session, | { } 211 | "print_session", hoc_print_session, | { } 212 | "show_errmess_always", hoc_show_errmess_always, | { } 213 | "execerror", hoc_Execerror, | { } 214 | "variable_domain", hoc_Symbol_limits, | { } 215 | "name_declared", hoc_name_declared, | { } 216 | "use_mcell_ran4", hoc_usemcran4, | { } 217 | "mcell_ran4", hoc_mcran4, | { } 218 | "mcell_ran4_init", hoc_mcran4init, | { } 219 | "nrn_feenableexcept", nrn_feenableexcept, | { } 220 | "nrnmpi_init", hoc_nrnmpi_init, | { } ...... 232 | 0, 0 | { 233 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:238:20: warning: missing braces around initializer [-Wmissing-braces] 238 | } strfun_bltin[] = { | ^ 239 | "secname", hoc_secname, | { } 240 | "units", hoc_Symbol_units, | { } 241 | "neuronhome", hoc_neuronhome, | { } 242 | "getcwd", hoc_getcwd, | { } 243 | "nrnversion", hoc_nrnversion, | { } 244 | 0, 0 | { 245 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:250:20: warning: missing braces around initializer [-Wmissing-braces] 250 | } objfun_bltin[] = { | ^ 251 | "object_pushed", hoc_object_pushed, | { } 252 | 0, 0 | { 253 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c: In function 'hoc_show_winio': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_init.c:355:9: warning: variable 'b' set but not used [-Wunused-but-set-variable] 355 | int b; | ^ [ 34%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DCABLE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_newobj': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:612:25: warning: unused variable 'o' [-Wunused-variable] 612 | Object* o = hoc_obj_look_inside_stack(narg); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:594:16: warning: unused variable 'total' [-Wunused-variable] 594 | int i, total; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:594:13: warning: unused variable 'i' [-Wunused-variable] 594 | int i, total; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:593:23: warning: unused variable 's' [-Wunused-variable] 593 | Symbol *sym, *s; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:592:21: warning: unused variable 'obd' [-Wunused-variable] 592 | Objectdata *obd; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_cmp_otype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:804:13: warning: variable 'type' set but not used [-Wunused-but-set-variable] 804 | int type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_known_type': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:809:13: warning: variable 'type' set but not used [-Wunused-but-set-variable] 809 | int type; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_name2obj': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:881:14: warning: unused variable 'buf' [-Wunused-variable] 881 | char buf[200]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'hoc_ob_pointer': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1275:17: warning: unused variable 'sym' [-Wunused-variable] 1275 | Symbol* sym; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c: In function 'java2nrn_class': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1563:48: warning: unused variable 'buf' [-Wunused-variable] 1563 | char mname[256], signature[256], *cn, *buf; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:1676:56: warning: '%s' directive writing up to 255 bytes into a region of size between 253 and 255 [-Wformat-overflow=] 1676 | sprintf(mname + strlen(mname), "%ld%s", | ^~~~~~~ 1677 | strlen(signature), signature); | ~~~~~~~~~ In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/oc/classreg.h:3, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:3, from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hoc_oop.c:6: /usr/include/bits/stdio2.h:38:10: note: '__sprintf_chk' output between 2 and 259 bytes into a destination of size 256 38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ [ 34%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:22: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/cabvars.h:8:15: warning: missing braces around initializer [-Wmissing-braces] 8 | } usrprop[] = { | ^ 9 | "nseg", 0, 0, | { } 10 | "L", 1, 2, | { } 11 | "rallbranch", 1, 4, | { } 12 | "Ra", 1, 7, | { } 13 | 0, 0, 0 | { 14 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:109:43: warning: missing braces around initializer [-Wmissing-braces] 109 | static HocParmLimits _hoc_parm_limits[] = { | ^ 110 | "Ra", 1e-6, 1e9, | { { }} 111 | "L", 1e-4, 1e20, | { { }} 112 | "diam", 1e-9, 1e9, | { { }} 113 | "cm", 0., 1e9, | { { }} 114 | "rallbranch", 1., 1e9, | { { }} 115 | "nseg", 1., 1e9, | { { }} 116 | "celsius", -273., 1e6, | { { }} 117 | "dt", 1e-9, 1e15, | { { }} 118 | 0, 0., 0. | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:121:41: warning: missing braces around initializer [-Wmissing-braces] 121 | static HocParmUnits _hoc_parm_units[] = { | ^ 122 | "Ra", "ohm-cm", | { } 123 | "L", "um", | { } 124 | "diam", "um", | { } 125 | "cm", "uF/cm2", | { } 126 | "celsius", "degC", | { } 127 | "dt", "ms", | { } 128 | "t", "ms", | { } 129 | "v", "mV", | { } 130 | "i_cap", "mA/cm2", | { } 131 | 0, 0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:287:28: warning: missing braces around initializer [-Wmissing-braces] 287 | static DoubScal scdoub[] = { | ^ 288 | "t", &t, | { } 289 | "dt", &dt, | { } 290 | 0,0 | { 291 | }; | } [ 34%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'longdifus_diamchange': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:46: warning: variable 'vnodecount' set but not used [-Wunused-but-set-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:31: warning: unused variable 'index' [-Wunused-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:147:28: warning: unused variable 'j' [-Wunused-variable] 147 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'longdifusalloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:192:19: warning: unused variable 'qsec' [-Wunused-variable] 192 | hoc_Item* qsec; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:191:15: warning: unused variable 'nd' [-Wunused-variable] 191 | Node* nd, *pnd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:31: warning: unused variable 'index' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:23: warning: unused variable 'mpi' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:189:19: warning: unused variable 'mi' [-Wunused-variable] 189 | int i, n, mi, mpi, j, index, pindex, vnodecount; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'stagger': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:369:21: warning: unused variable 'mi' [-Wunused-variable] 369 | int mi = pld->mindex[i]; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:329:31: warning: unused variable 'dx' [-Wunused-variable] 329 | double dc, vol, dfdi, dx; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:329:20: warning: unused variable 'vol' [-Wunused-variable] 329 | double dc, vol, dfdi, dx; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:328:19: warning: variable 'di' set but not used [-Wunused-but-set-variable] 328 | int i, n, di; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'ode': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:401:20: warning: unused variable 'vol' [-Wunused-variable] 401 | double dc, vol, dfdi; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c: In function 'matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ldifus.c:459:20: warning: unused variable 'vol' [-Wunused-variable] 459 | double dc, vol, dfdi; | ^~~ [ 34%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/method3.c [ 34%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnnemo.c [ 35%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrntimeout.c [ 35%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c: In function 'nrn_version': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:54:12: warning: unused variable 'size' [-Wunused-variable] 54 | int j, size; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:29:7: warning: unused variable 'b' [-Wunused-variable] 29 | int b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrnversion.c:28:9: warning: unused variable 'cp' [-Wunused-variable] 28 | char *cp; | ^~ [ 35%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c: In function 'pas_cur': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c:31:17: warning: unused variable 'vpdata' [-Wunused-variable] 31 | Datum **vpdata = ml->pdata; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c: In function 'pas_jacob': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive0.c:45:17: warning: unused variable 'vpdata' [-Wunused-variable] 45 | Datum **vpdata = ml->pdata; | ^~~~~~ [ 35%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/point.c [ 35%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/psection.c [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c: In function 'wholetree': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:31: warning: unused variable 'last' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:23: warning: unused variable 'first' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:19: warning: unused variable 'j' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:124:15: warning: unused variable 'i' [-Wunused-variable] 124 | Item* i, *j, *first, *last; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:123:28: warning: unused variable 'ch' [-Wunused-variable] 123 | Section* s, *sec, *ch; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/seclist.c:254:32: warning: missing braces around initializer [-Wmissing-braces] 254 | static Member_func members[] = { | ^ 255 | "append", append, | { } 256 | "remove", seclist_remove, | { } 257 | "wholetree", wholetree, | { } 258 | "subtree", subtree, | { } 259 | "children", children, | { } 260 | "unique", unique, | { } 261 | "printnames", printnames, | { } 262 | "contains", contains, | { } 263 | "allroots", allroots, | { } 264 | 0,0 | { 265 | }; | } [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_rename': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:81:24: warning: unused variable 'hoc_thisobject' [-Wunused-variable] 81 | extern Object* hoc_thisobject, **hoc_objgetarg(); | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_nchild': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:230:13: warning: unused variable 'n' [-Wunused-variable] 230 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_has_parent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:236:13: warning: unused variable 'n' [-Wunused-variable] 236 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_has_trueparent': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:246:13: warning: unused variable 'n' [-Wunused-variable] 246 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: In function 's_exists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:256:13: warning: unused variable 'n' [-Wunused-variable] 256 | int n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/secref.c:275:32: warning: missing braces around initializer [-Wmissing-braces] 275 | static Member_func members[] = { | ^ 276 | "sec", s_rename, /* will actually become a SECTIONREF below */ | { } 277 | "parent", s_rename, | { } 278 | "trueparent", s_rename, | { } 279 | "root", s_rename, | { } 280 | "child", s_rename, | { } 281 | "nchild", s_nchild, | { } 282 | "has_parent", s_has_parent, | { } 283 | "has_trueparent", s_has_trueparent, | { } 284 | "exists", s_exists, | { } 285 | "rename", s_rename, | { } 286 | "unname", s_unname, | { } 287 | "is_cas", s_cas, | { } 288 | 0, 0 | { 289 | }; | } [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'node_destruct': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:648:15: warning: unused variable 'nd' [-Wunused-variable] 648 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'node_realloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:724:29: warning: unused variable 'i' [-Wunused-variable] 724 | int n1, n2, i1, i2, i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:710:14: warning: 'node_interp' defined but not used [-Wunused-function] 710 | static Node* node_interp(Node* nd1, Node* nd2, double frac) | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c: In function 'distance': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/solve.c:271:21: warning: 'my_origin_node' may be used uninitialized in this function [-Wmaybe-uninitialized] 271 | d = topol_distance(my_origin_sec, my_origin_node, sec, node, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 272 | &sec, &node ); | ~~~~~~~~~~~~~ [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/synapse.c [ 36%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_lhs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:481:24: warning: variable 'neqn' set but not used [-Wunused-but-set-variable] 481 | int i, neqn; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:481:21: warning: unused variable 'i' [-Wunused-variable] 481 | int i, neqn; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'connection_coef': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:816:15: warning: unused variable 'p' [-Wunused-variable] 816 | Prop *p; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:32: warning: unused variable 'ra' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:20: warning: unused variable 'diam' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:813:16: warning: unused variable 'dx' [-Wunused-variable] 813 | double dx, diam, area, ra; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'pt3dinsert': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1118:13: warning: unused variable 'i' [-Wunused-variable] 1118 | int i, n, i0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'pt3dremove': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1169:13: warning: unused variable 'i' [-Wunused-variable] 1169 | int i, i0, n; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'setaffinity': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:288:13: warning: unused variable 'mask' [-Wunused-variable] 288 | int mask; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'reorder_secorder': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:879:26: warning: unused variable 'i' [-Wunused-variable] 879 | int order, isec, i, j, inode; | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c: In function 'nrn_how_many_processors': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:1288:13: warning: unused variable 'i' [-Wunused-variable] 1288 | int i, ip; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'v_setup_vectors': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1605:15: warning: unused variable 'nd' [-Wunused-variable] 1605 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1604:18: warning: unused variable 'sec' [-Wunused-variable] 1604 | Section* sec; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1603:13: warning: unused variable 'isec' [-Wunused-variable] 1603 | int isec; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_modeltype': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1914:26: warning: unused variable 'lm' [-Wunused-variable] 1914 | static Template* lm = (Template*)0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_matrix_node_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1979:15: warning: unused variable 'nd' [-Wunused-variable] 1979 | Node* nd; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1978:16: warning: unused variable 'b' [-Wunused-variable] 1978 | int i, b; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c: In function 'nrn_recalc_node_ptrs': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:2204:24: warning: unused variable 'd' [-Wunused-variable] 2204 | Datum* d; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1914:26: warning: 'lm' defined but not used [-Wunused-variable] 1914 | static Template* lm = (Template*)0; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/treeset.c:1598: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:268:13: warning: 'wait_for_workers_timeit' defined but not used [-Wunused-function] 268 | static void wait_for_workers_timeit() { | ^~~~~~~~~~~~~~~~~~~~~~~ [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/isaac64.c [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c: In function 'nrnRan4dbl': /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c:163:23: warning: unused variable 'extra' [-Wunused-variable] 163 | uint32_t hi, lo, extra; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/mcran4.c:163:19: warning: unused variable 'lo' [-Wunused-variable] 163 | uint32_t hi, lo, extra; | ^~ [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnisaac.c [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c: In function 'nrnran123_ipick': /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnran123.c:75:28: warning: array subscript has type 'char' [-Wchar-subscripts] 75 | rval = s->r.v[which++]; | ~~~~~^~ [ 37%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:2: In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '*fgets' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^~~ In file included from /usr/include/features.h:473, from /usr/include/bits/libc-header-start.h:33, from /usr/include/stdio.h:27, from /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:2: /usr/include/bits/stdio2.h:251:14: note: in a call to function '*fgets' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^~~~~~~~~~ [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/axis.c [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/bksub.c [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/code2.c /builddir/build/BUILD/nrn-7.8.1/src/oc/code2.c:516:16: warning: missing braces around initializer [-Wmissing-braces] 516 | } type_sym[] = { | ^ 517 | "Builtins", BLTIN, | { } 518 | "Other Builtins", FUN_BLTIN, | { } 519 | "Functions", FUNCTION, | { } 520 | "Procedures", PROCEDURE, | { } 521 | "Undefined", UNDEF, | { } 522 | "Scalars", VAR, | { } 523 | 0, 0 | { 524 | }; | } [ 38%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/cygwinprt.c [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/debug.c [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c: In function 'hoc_stdout': /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:78:21: warning: unused variable 'i' [-Wunused-variable] 78 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c: In function 'hoc_Load_file': /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:727:29: warning: unused variable 'i' [-Wunused-variable] 727 | int i; | ^ In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/oc/hocdec.h:15, from /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.h:5, from /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:8: In function 'strncpy', inlined from 'hoc_Load_file' at /builddir/build/BUILD/nrn-7.8.1/src/oc/fileio.c:704:2: /usr/include/bits/string_fortified.h:95:10: warning: 'strncpy' specified bound 1024 equals destination size [-Wstringop-truncation] 95 | return __builtin___strncpy_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 96 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/fmenu.c [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ftime.c [ 39%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/functabl.c [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/getelm.c [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/getsym.c [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'hoc_oc': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:1414:15: warning: unused variable 'cp' [-Wunused-variable] 1414 | char *cp; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'hoc_get_line': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:1850:44: warning: unused variable 'hoc_notify_stop' [-Wunused-variable] 1850 | extern int hoc_notify_stop; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c: In function 'matherr1': /builddir/build/BUILD/nrn-7.8.1/src/oc/hoc.c:75:1: warning: control reaches end of non-void function [-Wreturn-type] 75 | } | ^ [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/hocedit.c [ 40%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/isoc99.c [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/lineq.c [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/list.c [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/math.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c: In function 'hoc_errno_check': /builddir/build/BUILD/nrn-7.8.1/src/oc/math.c:118:13: warning: unused variable 'ierr' [-Wunused-variable] 118 | int ierr; | ^~~~ [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nonlin.c [ 41%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/nrnfilewrap.c [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ocerf.c [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/parallel.c /builddir/build/BUILD/nrn-7.8.1/src/oc/parallel.c:26:14: warning: 'parallel_envp' defined but not used [-Wunused-variable] 26 | static char *parallel_envp; | ^~~~~~~~~~~~~ [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/parse.c [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/plot.c [ 42%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/plt.c [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/prmat.c [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c: In function 'advance': /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:383:41: warning: array subscript has type 'char' [-Wchar-subscripts] 383 | start = int_range_start[*ep]; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:384:39: warning: array subscript has type 'char' [-Wchar-subscripts] 384 | stop = int_range_stop[*ep++]; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:415:26: warning: array subscript has type 'char' [-Wchar-subscripts] 415 | braslist[*ep++] = lp; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/oc/regexp.c:419:26: warning: array subscript has type 'char' [-Wchar-subscripts] 419 | braelist[*ep++] = lp; | ^~~~~ [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/scoprand.c /builddir/build/BUILD/nrn-7.8.1/src/oc/scoprand.c:20:13: warning: 'RCSid' defined but not used [-Wunused-variable] 20 | static char RCSid[] = | ^~~~~ [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/settext.c [ 43%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/subrows.c [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c: In function 'nrn_cacheline_calloc': /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:246:16: warning: unused variable 'n' [-Wunused-variable] 246 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:246:13: warning: unused variable 'i' [-Wunused-variable] 246 | int i, n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c: In function 'nrn_mallinfo': /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:430:9: warning: 'mallinfo' is deprecated [-Wdeprecated-declarations] 430 | m = mallinfo(); | ^ In file included from /builddir/build/BUILD/nrn-7.8.1/src/oc/symbol.c:25: /usr/include/malloc.h:118:24: note: declared here 118 | extern struct mallinfo mallinfo (void) __THROW __MALLOC_DEPRECATED; | ^~~~~~~~ [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/version.c [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/x.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/x.c [ 44%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -DINTERVIEWS=1 -DOOP=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/xred.c [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/ansi.c [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/basic.c [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/bind.c [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/buffer.c [ 45%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c: In function 'emacs_vtinit': /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c:88:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 88 | if (vscreen == NULL) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/memacs/display.c:91:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 91 | if (pscreen) { | ^~ [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/file.c [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/fileio.c [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/line.c [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/lock.c [ 46%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c In file included from /usr/include/string.h:519, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/edef.h:43, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:231: In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: 'strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 136 | __glibc_objsize (__dest)); | ~~~~~~~~~~~~~~~~~~~~~~~~~ [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/memacs/edef.h:42, from /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c:29: /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c: In function 'emacs_yank': /builddir/build/BUILD/nrn-7.8.1/src/memacs/redef.h:146:15: warning: unused variable 'emacs_kused' [-Wunused-variable] 146 | #define kused emacs_kused | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/memacs/random.c:551:30: note: in expansion of macro 'kused' 551 | extern unsigned kused; | ^~~~~ [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/region.c [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/search.c [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/spawn.c [ 47%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/tcap.c /builddir/build/BUILD/nrn-7.8.1/src/memacs/tcap.c:185:12: warning: 'putnpad' defined but not used [-Wunused-function] 185 | static int putnpad(str, n) | ^~~~~~~ [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/termio.c [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/window.c [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/memacs/word.c [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/arnoldi.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/arnoldi.c:37:13: warning: 'rcsid' defined but not used [-Wunused-variable] 37 | static char rcsid[] = "arnoldi.c,v 1.1 1997/12/04 17:55:13 hines Exp"; | ^~~~~ [ 48%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bdfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bdfactor.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "$Id: "; | ^~~~~ [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'interchange': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:55:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 55 | Real **A_me, tmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'BKPfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:108:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 108 | Real **A_me, aii, aip1, aip1i, lambda, sigma, tmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c: In function 'BKPsolve': /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:235:59: warning: variable 'tmp_ve' set but not used [-Wunused-but-set-variable] 235 | Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:235:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 235 | Real **A_me, a11, a12, a22, b1, b2, det, sum, *tmp_ve, tmp_diag; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/bkpfacto.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "bkpfacto.c,v 1.1 1997/12/04 17:55:14 hines Exp"; | ^~~~~ [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/chfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/chfactor.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "chfactor.c,v 1.1 1997/12/04 17:55:15 hines Exp"; | ^~~~~ [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/conjgrad.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/conjgrad.c:52:17: warning: 'rcsid' defined but not used [-Wunused-variable] 52 | static char rcsid[] = "conjgrad.c,v 1.1 1997/12/04 17:55:16 hines Exp"; | ^~~~~ [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c: In function 'vm_move': /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c:193:17: warning: variable 'dim0' set but not used [-Wunused-but-set-variable] 193 | int dim0, i; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/copy.c:28:17: warning: 'rcsid' defined but not used [-Wunused-variable] 28 | static char rcsid[] = "copy.c,v 1.1 1997/12/04 17:55:17 hines Exp"; | ^~~~~ [ 49%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c: In function 'main': /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:38: warning: unused variable 'dtmp' [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:31: warning: unused variable 'deps1' [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:31: warning: 'deps1' defined but not used [-Wunused-variable] /builddir/build/BUILD/nrn-7.8.1/src/mesch/dmacheps.c:40:38: warning: 'dtmp' defined but not used [-Wunused-variable] 40 | static double deps, deps1, dtmp; | ^~~~ [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/err.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/err.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "err.c,v 1.1 1997/12/04 17:55:19 hines Exp"; | ^~~~~ [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmm': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:439:31: warning: unused variable 'k' [-Wunused-variable] 439 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:439:28: warning: unused variable 'j' [-Wunused-variable] 439 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmtrm': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:458:28: warning: unused variable 'j' [-Wunused-variable] 458 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:458:25: warning: unused variable 'i' [-Wunused-variable] 458 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c: In function 'Mmmtr': /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:476:31: warning: unused variable 'k' [-Wunused-variable] 476 | register int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:476:28: warning: unused variable 'j' [-Wunused-variable] 476 | register int i, j, k; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/extras.c:87:17: warning: 'rcsid' defined but not used [-Wunused-variable] 87 | static char rcsid[] = "$Id: extras.c,v 1.4 1995/06/08 15:13:15 des Exp $"; | ^~~~~ [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/fft.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/fft.c:34:13: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "fft.c,v 1.1 1997/12/04 17:55:20 hines Exp"; | ^~~~~ [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/givens.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/givens.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "givens.c,v 1.1 1997/12/04 17:55:22 hines Exp"; | ^~~~~ [ 50%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hessen.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hessen.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "hessen.c,v 1.1 1997/12/04 17:55:23 hines Exp"; | ^~~~~ [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hsehldr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/hsehldr.c:37:17: warning: 'rcsid' defined but not used [-Wunused-variable] 37 | static char rcsid[] = "hsehldr.c,v 1.1 1997/12/04 17:55:24 hines Exp"; | ^~~~~ [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/init.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/init.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "init.c,v 1.1 1997/12/04 17:55:25 hines Exp"; | ^~~~~ [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c: In function 'iter_copy2': /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c:207:21: warning: operation on 'ip2->shared_x' may be undefined [-Wsequence-point] 207 | ip2->shared_x = ip2->shared_x = FALSE; At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/iter0.c:44:13: warning: 'rcsid' defined but not used [-Wunused-variable] 44 | static char rcsid[] = "iter0.c,v 1.1 1997/12/04 17:55:26 hines Exp"; | ^~~~~ [ 51%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:826:13: warning: 'test_mgcr' defined but not used [-Wunused-function] 826 | static void test_mgcr(ip,i,Q,R) | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:541:13: warning: 'test_gmres' defined but not used [-Wunused-function] 541 | static void test_gmres(ip,i,Q,R,givc,givs,h_val) | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/iternsym.c:43:13: warning: 'rcsid' defined but not used [-Wunused-variable] 43 | static char rcsid[] = "iternsym.c,v 1.1 1997/12/04 17:55:27 hines Exp"; | ^~~~~ [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/itersym.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/itersym.c:43:13: warning: 'rcsid' defined but not used [-Wunused-variable] 43 | static char rcsid[] = "itersym.c,v 1.1 1997/12/04 17:55:29 hines Exp"; | ^~~~~ [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c: In function 'iv_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c:117:15: warning: operation on 'iv->ive' may be undefined [-Wsequence-point] 117 | iv->ive = RENEW(iv->ive,new_dim,int); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/ivecop.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "ivecop.c,v 1.1 1997/12/04 17:55:30 hines Exp"; | ^~~~~ [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lanczos.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lanczos.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "lanczos.c,v 1.1 1997/12/04 17:55:31 hines Exp"; | ^~~~~ [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lufactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/lufactor.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "lufactor.c,v 1.1 1997/12/04 17:55:32 hines Exp"; | ^~~~~ [ 52%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/machine.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/machine.c:35:18: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char *rcsid = "machine.c,v 1.1 1997/12/04 17:55:33 hines Exp"; | ^~~~~ [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matlab.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matlab.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "matlab.c,v 1.1 1997/12/04 17:55:34 hines Exp"; | ^~~~~ [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matop.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "matop.c,v 1.1 1997/12/04 17:55:35 hines Exp"; | ^~~~~ [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matrixio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/matrixio.c:35:13: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "matrixio.c,v 1.1 1997/12/04 17:55:35 hines Exp"; | ^~~~~ [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/meminfo.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/meminfo.c:46:13: warning: 'rcsid' defined but not used [-Wunused-variable] 46 | static char rcsid[] = "meminfo.c,v 1.1 1997/12/04 17:55:37 hines Exp"; | ^~~~~ [ 53%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'm_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:287:13: warning: operation on 'A->me' may be undefined [-Wsequence-point] 287 | A->me = RENEW(A->me,new_m,Real *); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:303:15: warning: operation on 'A->base' may be undefined [-Wsequence-point] 303 | A->base = RENEW(A->base,new_size,Real); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'px_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:421:14: warning: operation on 'px->pe' may be undefined [-Wsequence-point] 421 | px->pe = RENEW(px->pe,new_size,u_int); /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c: In function 'v_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:466:13: warning: operation on 'x->ve' may be undefined [-Wsequence-point] 466 | x->ve = RENEW(x->ve,new_dim,Real); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/memory.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "memory.c,v 1.1 1997/12/04 17:55:38 hines Exp"; | ^~~~~ [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memstat.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/memstat.c:44:13: warning: 'rcsid' defined but not used [-Wunused-variable] 44 | static char rcsid[] = "memstat.c,v 1.1 1997/12/04 17:55:39 hines Exp"; | ^~~~~ [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/mfunc.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/mfunc.c:39:17: warning: 'rcsid' defined but not used [-Wunused-variable] 39 | static char rcsid[] = "mfunc.c,v 1.1 1997/12/04 17:55:41 hines Exp"; | ^~~~~ [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/norm.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/norm.c:31:17: warning: 'rcsid' defined but not used [-Wunused-variable] 31 | static char rcsid[] = "norm.c,v 1.1 1997/12/04 17:55:43 hines Exp"; | ^~~~~ [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/otherio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/otherio.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "otherio.c,v 1.1 1997/12/04 17:55:44 hines Exp"; | ^~~~~ [ 54%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/pxop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/pxop.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "pxop.c,v 1.1 1997/12/04 17:55:44 hines Exp"; | ^~~~~ [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/qrfactor.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/qrfactor.c:42:17: warning: 'rcsid' defined but not used [-Wunused-variable] 42 | static char rcsid[] = "qrfactor.c,v 1.1 1997/12/04 17:55:45 hines Exp"; | ^~~~~ [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'hhldr3cols': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:74:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 74 | Real **A_me, ip, prod; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'hhldr3rows': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:123:19: warning: variable 'A_me' set but not used [-Wunused-but-set-variable] 123 | Real **A_me, ip, prod; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c: In function 'schur': /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:159:51: warning: unused variable 't' [-Wunused-variable] 159 | Real beta2, c, discrim, dummy, nu1, s, t, tmp, x, y, z; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/schur.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "schur.c,v 1.1 1997/12/04 17:55:46 hines Exp"; | ^~~~~ [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/solve.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/solve.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "solve.c,v 1.1 1997/12/04 17:55:47 hines Exp"; | ^~~~~ [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_set_val': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:99:17: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 99 | r->elt = RENEW(r->elt,new_len,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_mv_mlt': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:127:22: warning: variable 'n' set but not used [-Wunused-but-set-variable] 127 | int i, j_idx, m, n, max_idx; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_vm_mlt': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:163:22: warning: variable 'n' set but not used [-Wunused-but-set-variable] 163 | int i, j_idx, m, n, max_idx; | ^ /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_copy2': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:679:16: warning: operation on 'mesch_out->row' may be undefined [-Wsequence-point] 679 | OUT->row = RENEW(OUT->row,A->m,SPROW); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c: In function 'sp_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:756:14: warning: operation on 'A->row' may be undefined [-Wsequence-point] 756 | A->row = RENEW(A->row,(unsigned)m,SPROW); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:783:20: warning: operation on 'A->start_row' may be undefined [-Wsequence-point] 783 | A->start_row = RENEW(A->start_row,(unsigned)n,int); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:784:20: warning: operation on 'A->start_idx' may be undefined [-Wsequence-point] 784 | A->start_idx = RENEW(A->start_idx,(unsigned)n,int); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparse.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "sparse.c,v 1.1 1997/12/04 17:55:48 hines Exp"; | ^~~~~ [ 55%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparseio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sparseio.c:36:13: warning: 'rcsid' defined but not used [-Wunused-variable] 36 | static char rcsid[] = "sparseio.c,v 1.1 1997/12/04 17:55:49 hines Exp"; | ^~~~~ [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c: In function 'spBKPfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:569:17: warning: variable 'row_num' set but not used [-Wunused-but-set-variable] 569 | int row_num; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:567:44: warning: variable 'r' set but not used [-Wunused-but-set-variable] 567 | int i, j, k, l, n, onebyone=0, r; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/spbkp.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "spbkp.c,v 1.1 1997/12/04 17:55:50 hines Exp"; | ^~~~~ [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c: In function 'spICHfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c:386:23: warning: variable 'n' set but not used [-Wunused-but-set-variable] 386 | int k, m, n, nxt_row, nxt_idx, diag_idx; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/spchfctr.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "spchfctr.c,v 1.1 1997/12/04 17:55:51 hines Exp"; | ^~~~~ [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c: In function 'spILUfactor': /builddir/build/BUILD/nrn-7.8.1/src/mesch/splufctr.c:306:37: warning: variable 'm' set but not used [-Wunused-but-set-variable] 306 | int i, k, idx, idx_piv, m, n, old_idx, old_idx_piv; | ^ [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_xpd': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:202:14: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 202 | r->elt = RENEW(r->elt,newlen,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:248:14: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 248 | r->elt = RENEW(r->elt,n,row_elt); /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c: In function 'sprow_set_val': /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:692:17: warning: operation on 'r->elt' may be undefined [-Wsequence-point] 692 | r->elt = RENEW(r->elt,new_len,row_elt); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/sprow.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "sprow.c,v 1.1 1997/12/04 17:55:53 hines Exp"; | ^~~~~ [ 56%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spswap.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/spswap.c:34:17: warning: 'rcsid' defined but not used [-Wunused-variable] 34 | static char rcsid[] = "spswap.c,v 1.1 1997/12/04 17:55:54 hines Exp"; | ^~~~~ [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/submat.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/submat.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "submat.c,v 1.1 1997/12/04 17:55:55 hines Exp"; | ^~~~~ [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/svd.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/svd.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "svd.c,v 1.1 1997/12/04 17:55:56 hines Exp"; | ^~~~~ [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/symmeig.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/symmeig.c:38:13: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "symmeig.c,v 1.1 1997/12/04 17:55:57 hines Exp"; | ^~~~~ [ 57%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/update.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/update.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "update.c,v 1.1 1997/12/04 17:56:01 hines Exp"; | ^~~~~ [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/vecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/vecop.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "vecop.c,v 1.1 1997/12/04 17:56:02 hines Exp"; | ^~~~~ [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/version.c [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c: In function 'zvm_move': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c:175:17: warning: variable 'dim0' set but not used [-Wunused-but-set-variable] 175 | int dim0, i; | ^~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/zcopy.c:28:17: warning: 'rcsid' defined but not used [-Wunused-variable] 28 | static char rcsid[] = "zcopy.c,v 1.1 1997/12/04 17:56:04 hines Exp"; | ^~~~~ [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zfunc.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zfunc.c:35:13: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "zfunc.c,v 1.1 1997/12/04 17:56:05 hines Exp"; | ^~~~~ [ 58%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zgivens.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zgivens.c:36:17: warning: 'rcsid' defined but not used [-Wunused-variable] 36 | static char rcsid[] = "$Id: "; | ^~~~~ [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhessen.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhessen.c:35:17: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char rcsid[] = "zhessen.c,v 1.1 1997/12/04 17:56:07 hines Exp"; | ^~~~~ [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhsehldr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zhsehldr.c:38:17: warning: 'rcsid' defined but not used [-Wunused-variable] 38 | static char rcsid[] = "zhsehldr.c,v 1.1 1997/12/04 17:56:08 hines Exp"; | ^~~~~ [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zlufctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zlufctr.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "zlufctr.c,v 1.1 1997/12/04 17:56:09 hines Exp"; | ^~~~~ [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmachine.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmachine.c:35:18: warning: 'rcsid' defined but not used [-Wunused-variable] 35 | static char *rcsid = "zmachine.c,v 1.1 1997/12/04 17:56:10 hines Exp"; | ^~~~~ [ 59%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatio.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatio.c:33:13: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zmatio.c,v 1.1 1997/12/04 17:56:11 hines Exp"; | ^~~~~ [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatlab.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatlab.c:41:13: warning: 'rcsid' defined but not used [-Wunused-variable] 41 | static char rcsid[] = "zmatlab.c,v 1.1 1997/12/04 17:56:11 hines Exp"; | ^~~~~ [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmatop.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "zmatop.c,v 1.1 1997/12/04 17:56:12 hines Exp"; | ^~~~~ [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c: In function 'zm_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:250:13: warning: operation on 'A->me' may be undefined [-Wsequence-point] 250 | A->me = RENEW(A->me,new_m,complex *); /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:266:15: warning: operation on 'A->base' may be undefined [-Wsequence-point] 266 | A->base = RENEW(A->base,new_size,complex); /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c: In function 'zv_resize': /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:385:13: warning: operation on 'x->ve' may be undefined [-Wsequence-point] 385 | x->ve = RENEW(x->ve,new_dim,complex); At top level: /builddir/build/BUILD/nrn-7.8.1/src/mesch/zmemory.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zmemory.c,v 1.1 1997/12/04 17:56:13 hines Exp"; | ^~~~~ [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/znorm.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/znorm.c:32:17: warning: 'rcsid' defined but not used [-Wunused-variable] 32 | static char rcsid[] = "znorm.c,v 1.1 1997/12/04 17:56:14 hines Exp"; | ^~~~~ [ 60%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zqrfctr.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zqrfctr.c:42:17: warning: 'rcsid' defined but not used [-Wunused-variable] 42 | static char rcsid[] = "zqrfctr.c,v 1.1 1997/12/04 17:56:15 hines Exp"; | ^~~~~ [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zschur.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zschur.c:40:13: warning: 'rcsid' defined but not used [-Wunused-variable] 40 | static char rcsid[] = "zschur.c,v 1.1 1997/12/04 17:56:16 hines Exp"; | ^~~~~ [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zsolve.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zsolve.c:33:17: warning: 'rcsid' defined but not used [-Wunused-variable] 33 | static char rcsid[] = "zsolve.c,v 1.1 1997/12/04 17:56:17 hines Exp"; | ^~~~~ [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zvecop.c /builddir/build/BUILD/nrn-7.8.1/src/mesch/zvecop.c:31:17: warning: 'rcsid' defined but not used [-Wunused-variable] 31 | static char rcsid[] = "zvecop.c,v 1.1 1997/12/04 17:56:19 hines Exp"; | ^~~~~ [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:116:34: warning: missing braces around initializer [-Wmissing-braces] 116 | static VoidFunc hoc_intfunc[] = { | ^ 117 | 0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:119:38: warning: missing braces around initializer [-Wmissing-braces] 119 | static Member_func _member_func[] = { | ^ 120 | "loc", _hoc_loc_pnt, | { } 121 | "has_loc", _hoc_has_loc, | { } 122 | "get_loc", _hoc_get_loc_pnt, | { } 123 | "check", _hoc_check, | { } 124 | "record", _hoc_record, | { } 125 | 0, 0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | "thresh", "mV", | { } 134 | "time", "ms", | { } 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:170:15: warning: unused variable 'prop_ion' [-Wunused-variable] 170 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_apcount_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:200:13: warning: unused variable '_vectorized' [-Wunused-variable] 200 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:18: warning: unused variable '_save' [-Wunused-variable] 293 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:293:7: warning: unused variable '_i' [-Wunused-variable] 293 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_cur__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:35: warning: variable '_v' set but not used [-Wunused-but-set-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:341:29: warning: unused variable '_rhs' [-Wunused-variable] 341 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:340:9: warning: variable '_p' set but not used [-Wunused-but-set-variable] 340 | double* _p; Datum* _ppvar; Datum* _thread; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_nrn_jacob__APCount': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:364:20: warning: unused variable '_ppvar' [-Wunused-variable] 364 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:420:6: warning: unused variable '_i' [-Wunused-variable] 420 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:419:21: warning: unused variable '_p' [-Wunused-variable] 419 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:416:13: warning: 'terminal' defined but not used [-Wunused-function] 416 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:28:22: warning: '_nrn_current__APCount' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__APCount | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:335:15: note: in expansion of macro '_nrn_current' 335 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:226:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 226 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:224:12: warning: '_ninits' defined but not used [-Wunused-variable] 224 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:223:12: warning: 'error' defined but not used [-Wunused-variable] 223 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:221:14: warning: 'modelname' defined but not used [-Wunused-variable] 221 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:220:12: warning: '_reset' defined but not used [-Wunused-variable] 220 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:137:16: warning: 'delta_t' defined but not used [-Wunused-variable] 137 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:111:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 111 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/apcount.c:188:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 188 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 61%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:82:34: warning: missing braces around initializer [-Wmissing-braces] 82 | static VoidFunc hoc_intfunc[] = { | ^ 83 | "setdata_feature", _hoc_setdata, | { } 84 | "install_vector_fitness", _hoc_install_vector_fitness, | { } 85 | 0, 0 | { 86 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:44: warning: missing braces around initializer [-Wmissing-braces] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^ 90 | 0,0,0 | { { 91 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:42: warning: missing braces around initializer [-Wmissing-braces] 92 | static HocParmUnits _hoc_parm_units[] = { | ^ 93 | 0,0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:97:33: warning: missing braces around initializer [-Wmissing-braces] 97 | static DoubScal hoc_scdoub[] = { | ^ 98 | 0,0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:100:31: warning: missing braces around initializer [-Wmissing-braces] 100 | static DoubVec hoc_vdoub[] = { | ^ 101 | 0,0,0 | { 102 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:120:28: warning: unused variable '_ppvar' [-Wunused-variable] 120 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:119:15: warning: unused variable 'prop_ion' [-Wunused-variable] 119 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_feature_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:135:13: warning: unused variable '_vectorized' [-Wunused-variable] 135 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'width': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:152:13: warning: unused variable 'i' [-Wunused-variable] 152 | int i, nx, ny, i1, i2; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'xfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:177:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 177 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'yfitness': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:207:21: warning: variable 'nyval' set but not used [-Wunused-but-set-variable] 207 | int nx, ny, nyval, nxval, i, j; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:18: warning: unused variable '_save' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:266:7: warning: unused variable '_i' [-Wunused-variable] 266 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:324:6: warning: unused variable '_i' [-Wunused-variable] 324 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:321:13: warning: 'terminal' defined but not used [-Wunused-function] 321 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:30:19: warning: '_nrn_state_' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state_ | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:297:13: note: in expansion of macro 'nrn_state' 297 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:28:22: warning: '_nrn_current_' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current_ | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:293:15: note: in expansion of macro '_nrn_current' 293 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:25:18: warning: '_nrn_init_' defined but not used [-Wunused-function] 25 | #define nrn_init _nrn_init_ | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:272:13: note: in expansion of macro 'nrn_init' 272 | static void nrn_init(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:146:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 146 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:143:12: warning: 'error' defined but not used [-Wunused-variable] 143 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:141:14: warning: 'modelname' defined but not used [-Wunused-variable] 141 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:140:12: warning: '_reset' defined but not used [-Wunused-variable] 140 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:118:13: warning: 'nrn_alloc' defined but not used [-Wunused-function] 118 | static void nrn_alloc(Prop* _prop) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:108:21: warning: '_mechanism' defined but not used [-Wunused-variable] 108 | static const char *_mechanism[] = { | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:103:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 103 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:92:22: warning: '_hoc_parm_units' defined but not used [-Wunused-variable] 92 | static HocParmUnits _hoc_parm_units[] = { | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:89:23: warning: '_hoc_parm_limits' defined but not used [-Wunused-variable] 89 | static HocParmLimits _hoc_parm_limits[] = { | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/feature.c:60:13: warning: 'hoc_nrnpointerindex' defined but not used [-Wunused-variable] 60 | static int hoc_nrnpointerindex = -1; | ^~~~~~~~~~~~~~~~~~~ [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:117:34: warning: missing braces around initializer [-Wmissing-braces] 117 | static VoidFunc hoc_intfunc[] = { | ^ 118 | 0,0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:120:38: warning: missing braces around initializer [-Wmissing-braces] 120 | static Member_func _member_func[] = { | ^ 121 | "loc", _hoc_loc_pnt, | { } 122 | "has_loc", _hoc_has_loc, | { } 123 | "get_loc", _hoc_get_loc_pnt, | { } 124 | "I", _hoc_I, | { } 125 | "M", _hoc_M, | { } 126 | "firetime", _hoc_firetime, | { } 127 | "newton1", _hoc_newton1, | { } 128 | 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:140:44: warning: missing braces around initializer [-Wmissing-braces] 140 | static HocParmLimits _hoc_parm_limits[] = { | ^ 141 | 0,0,0 | { { 142 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:143:42: warning: missing braces around initializer [-Wmissing-braces] 143 | static HocParmUnits _hoc_parm_units[] = { | ^ 144 | "taus", "ms", | { } 145 | "taum", "ms", | { } 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:179:15: warning: unused variable 'prop_ion' [-Wunused-variable] 179 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_intfire2_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:212:13: warning: unused variable '_vectorized' [-Wunused-variable] 212 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'I_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:268:15: warning: variable '_lf' set but not used [-Wunused-but-set-variable] 268 | double _lx , _lf ; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'newton1_IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:371:38: warning: variable '_lxm' set but not used [-Wunused-but-set-variable] 371 | double _ldx , _lf , _ldf , _liter , _lxm ; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:18: warning: unused variable '_save' [-Wunused-variable] 415 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:415:7: warning: unused variable '_i' [-Wunused-variable] 415 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_init__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:19: warning: unused variable '_v' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:431:7: warning: unused variable '_nd' [-Wunused-variable] 431 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_nrn_state__IntFire2': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:450:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 450 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:449:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 449 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:469:6: warning: unused variable '_i' [-Wunused-variable] 469 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:468:21: warning: unused variable '_p' [-Wunused-variable] 468 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:465:13: warning: 'terminal' defined but not used [-Wunused-function] 465 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:30:19: warning: '_nrn_state__IntFire2' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire2 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:448:13: note: in expansion of macro 'nrn_state' 448 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:28:22: warning: '_nrn_current__IntFire2' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire2 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:444:15: note: in expansion of macro '_nrn_current' 444 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:243:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 243 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:241:12: warning: '_ninits' defined but not used [-Wunused-variable] 241 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:240:12: warning: 'error' defined but not used [-Wunused-variable] 240 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:238:14: warning: 'modelname' defined but not used [-Wunused-variable] 238 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:237:12: warning: '_reset' defined but not used [-Wunused-variable] 237 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:112:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 112 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire2.c:197:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 197 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:118:34: warning: missing braces around initializer [-Wmissing-braces] 118 | static VoidFunc hoc_intfunc[] = { | ^ 119 | 0,0 | { 120 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:121:38: warning: missing braces around initializer [-Wmissing-braces] 121 | static Member_func _member_func[] = { | ^ 122 | "loc", _hoc_loc_pnt, | { } 123 | "has_loc", _hoc_has_loc, | { } 124 | "get_loc", _hoc_get_loc_pnt, | { } 125 | "icur", _hoc_icur, | { } 126 | "vstim", _hoc_vstim, | { } 127 | 0, 0 | { 128 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:131:44: warning: missing braces around initializer [-Wmissing-braces] 131 | static HocParmLimits _hoc_parm_limits[] = { | ^ 132 | "rs", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "rs", "megohm", | { } 137 | "on", "ms", | { } 138 | "off", "ms", | { } 139 | "vc", "mV", | { } 140 | "i", "nA", | { } 141 | 0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:145:33: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubScal hoc_scdoub[] = { | ^ 146 | 0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:148:31: warning: missing braces around initializer [-Wmissing-braces] 148 | static DoubVec hoc_vdoub[] = { | ^ 149 | 0,0,0 | { 150 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_oclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:210:13: warning: unused variable '_vectorized' [-Wunused-variable] 210 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:18: warning: unused variable '_save' [-Wunused-variable] 292 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:292:7: warning: unused variable '_i' [-Wunused-variable] 292 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_nrn_jacob__OClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:393:20: warning: unused variable '_ppvar' [-Wunused-variable] 393 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:461:6: warning: unused variable '_i' [-Wunused-variable] 461 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:460:21: warning: unused variable '_p' [-Wunused-variable] 460 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:457:13: warning: 'terminal' defined but not used [-Wunused-function] 457 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:236:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 236 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:234:12: warning: '_ninits' defined but not used [-Wunused-variable] 234 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:233:12: warning: 'error' defined but not used [-Wunused-variable] 233 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:231:14: warning: 'modelname' defined but not used [-Wunused-variable] 231 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:230:12: warning: '_reset' defined but not used [-Wunused-variable] 230 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:151:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 151 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:143:16: warning: 'delta_t' defined but not used [-Wunused-variable] 143 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:113:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 113 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/oclmp.c:198:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 198 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:106:34: warning: missing braces around initializer [-Wmissing-braces] 106 | static VoidFunc hoc_intfunc[] = { | ^ 107 | 0,0 | { 108 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:109:38: warning: missing braces around initializer [-Wmissing-braces] 109 | static Member_func _member_func[] = { | ^ 110 | "loc", _hoc_loc_pnt, | { } 111 | "has_loc", _hoc_has_loc, | { } 112 | "get_loc", _hoc_get_loc_pnt, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:117:44: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmLimits _hoc_parm_limits[] = { | ^ 118 | 0,0,0 | { { 119 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:120:42: warning: missing braces around initializer [-Wmissing-braces] 120 | static HocParmUnits _hoc_parm_units[] = { | ^ 121 | 0,0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:124:33: warning: missing braces around initializer [-Wmissing-braces] 124 | static DoubScal hoc_scdoub[] = { | ^ 125 | 0,0 | { 126 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:127:31: warning: missing braces around initializer [-Wmissing-braces] 127 | static DoubVec hoc_vdoub[] = { | ^ 128 | 0,0,0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:149:15: warning: unused variable 'prop_ion' [-Wunused-variable] 149 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_ppmark_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:176:13: warning: unused variable '_vectorized' [-Wunused-variable] 176 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:18: warning: unused variable '_save' [-Wunused-variable] 205 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:205:7: warning: unused variable '_i' [-Wunused-variable] 205 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_nrn_state__PointProcessMark': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:239:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 239 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:268:6: warning: unused variable '_i' [-Wunused-variable] 268 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:267:21: warning: unused variable '_p' [-Wunused-variable] 267 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:264:13: warning: 'terminal' defined but not used [-Wunused-function] 264 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:30:19: warning: '_nrn_state__PointProcessMark' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:238:13: note: in expansion of macro 'nrn_state' 238 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:28:22: warning: '_nrn_current__PointProcessMark' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PointProcessMark | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:234:15: note: in expansion of macro '_nrn_current' 234 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:202:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 202 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:200:12: warning: '_ninits' defined but not used [-Wunused-variable] 200 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:199:12: warning: 'error' defined but not used [-Wunused-variable] 199 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:197:14: warning: 'modelname' defined but not used [-Wunused-variable] 197 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:196:12: warning: '_reset' defined but not used [-Wunused-variable] 196 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:130:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 130 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:101:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 101 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:62:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 62 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/ppmark.c:164:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 164 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | "alpha", _hoc_alpha, | { } 122 | 0, 0 | { 123 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:128:44: warning: missing braces around initializer [-Wmissing-braces] 128 | static HocParmLimits _hoc_parm_limits[] = { | ^ 129 | "gmax", 0, 1e+09, | { { }} 130 | "tau", 0.001, 1e+06, | { { }} 131 | 0,0,0 | { { 132 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:133:42: warning: missing braces around initializer [-Wmissing-braces] 133 | static HocParmUnits _hoc_parm_units[] = { | ^ 134 | "onset", "ms", | { } 135 | "tau", "ms", | { } 136 | "gmax", "uS", | { } 137 | "e", "mV", | { } 138 | "i", "nA", | { } 139 | 0,0 | { 140 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:142:33: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubScal hoc_scdoub[] = { | ^ 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:145:31: warning: missing braces around initializer [-Wmissing-braces] 145 | static DoubVec hoc_vdoub[] = { | ^ 146 | 0,0,0 | { 147 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:174:15: warning: unused variable 'prop_ion' [-Wunused-variable] 174 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:205:13: warning: unused variable '_vectorized' [-Wunused-variable] 205 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:18: warning: unused variable '_save' [-Wunused-variable] 257 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:257:7: warning: unused variable '_i' [-Wunused-variable] 257 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_jacob__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:337:20: warning: unused variable '_ppvar' [-Wunused-variable] 337 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:368:6: warning: unused variable '_i' [-Wunused-variable] 368 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:367:21: warning: unused variable '_p' [-Wunused-variable] 367 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:364:13: warning: 'terminal' defined but not used [-Wunused-function] 364 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:231:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 231 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:229:12: warning: '_ninits' defined but not used [-Wunused-variable] 229 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:228:12: warning: 'error' defined but not used [-Wunused-variable] 228 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:226:14: warning: 'modelname' defined but not used [-Wunused-variable] 226 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:225:12: warning: '_reset' defined but not used [-Wunused-variable] 225 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:148:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 148 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:193:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 193 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c: In function '_nrn_cur__AlphaSynapse': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/section.h:107:26: warning: '_nd' may be used uninitialized in this function [-Wmaybe-uninitialized] 107 | #define NODERHS(n) (*((n)->_rhs)) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/syn.c:300:7: note: '_nd' was declared here 300 | Node *_nd; int* _ni; double _rhs, _v; int _iml, _cntml; | ^~~ [ 62%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:119:34: warning: missing braces around initializer [-Wmissing-braces] 119 | static VoidFunc hoc_intfunc[] = { | ^ 120 | 0,0 | { 121 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:122:38: warning: missing braces around initializer [-Wmissing-braces] 122 | static Member_func _member_func[] = { | ^ 123 | "loc", _hoc_loc_pnt, | { } 124 | "has_loc", _hoc_has_loc, | { } 125 | "get_loc", _hoc_get_loc_pnt, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:130:44: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmLimits _hoc_parm_limits[] = { | ^ 131 | "tau2", 1e-09, 1e+09, | { { }} 132 | "tau1", 1e-09, 1e+09, | { { }} 133 | 0,0,0 | { { 134 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:135:42: warning: missing braces around initializer [-Wmissing-braces] 135 | static HocParmUnits _hoc_parm_units[] = { | ^ 136 | "tau1", "ms", | { } 137 | "tau2", "ms", | { } 138 | "e", "mV", | { } 139 | "A", "uS", | { } 140 | "B", "uS", | { } 141 | "i", "nA", | { } 142 | "g", "uS", | { } 143 | 0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:149:33: warning: missing braces around initializer [-Wmissing-braces] 149 | static DoubScal hoc_scdoub[] = { | ^ 150 | 0,0 | { 151 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:152:31: warning: missing braces around initializer [-Wmissing-braces] 152 | static DoubVec hoc_vdoub[] = { | ^ 153 | 0,0,0 | { 154 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:191:15: warning: unused variable 'prop_ion' [-Wunused-variable] 191 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:216:46: warning: missing braces around initializer [-Wmissing-braces] 216 | static HocStateTolerance _hoc_state_tol[] = { | ^ 217 | 0,0 | { 218 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_exp2syn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:227:13: warning: unused variable '_vectorized' [-Wunused-variable] 227 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_net_receive__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:286:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 286 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:325:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 325 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:340:22: warning: unused variable '_v' [-Wunused-variable] 340 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:18: warning: unused variable '_save' [-Wunused-variable] 351 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:351:7: warning: unused variable '_i' [-Wunused-variable] 351 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_nrn_jacob__Exp2Syn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:445:20: warning: unused variable '_ppvar' [-Wunused-variable] 445 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:499:6: warning: unused variable '_i' [-Wunused-variable] 499 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:495:13: warning: 'terminal' defined but not used [-Wunused-function] 495 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:258:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 258 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:256:12: warning: '_ninits' defined but not used [-Wunused-variable] 256 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:255:12: warning: 'error' defined but not used [-Wunused-variable] 255 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:253:14: warning: 'modelname' defined but not used [-Wunused-variable] 253 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:252:12: warning: '_reset' defined but not used [-Wunused-variable] 252 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:155:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 155 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:147:16: warning: 'delta_t' defined but not used [-Wunused-variable] 147 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:114:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 114 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:75:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 75 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/exp2syn.c:209:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 209 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:122:34: warning: missing braces around initializer [-Wmissing-braces] 122 | static VoidFunc hoc_intfunc[] = { | ^ 123 | "setdata_hh", _hoc_setdata, | { } 124 | "rates_hh", _hoc_rates, | { } 125 | "vtrap_hh", _hoc_vtrap, | { } 126 | 0, 0 | { 127 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:154:44: warning: missing braces around initializer [-Wmissing-braces] 154 | static HocParmLimits _hoc_parm_limits[] = { | ^ 155 | "gl_hh", 0, 1e+09, | { { }} 156 | "gkbar_hh", 0, 1e+09, | { { }} 157 | "gnabar_hh", 0, 1e+09, | { { }} 158 | "usetable_hh", 0, 1, | { { }} 159 | 0,0,0 | { { 160 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:161:42: warning: missing braces around initializer [-Wmissing-braces] 161 | static HocParmUnits _hoc_parm_units[] = { | ^ 162 | "mtau_hh", "ms", | { } 163 | "htau_hh", "ms", | { } 164 | "ntau_hh", "ms", | { } 165 | "gnabar_hh", "S/cm2", | { } 166 | "gkbar_hh", "S/cm2", | { } 167 | "gl_hh", "S/cm2", | { } 168 | "el_hh", "mV", | { } 169 | "gna_hh", "S/cm2", | { } 170 | "gk_hh", "S/cm2", | { } 171 | "il_hh", "mA/cm2", | { } 172 | 0,0 | { 173 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:179:33: warning: missing braces around initializer [-Wmissing-braces] 179 | static DoubScal hoc_scdoub[] = { | ^ 180 | "minf_hh", &minf_hh, | { } 181 | "hinf_hh", &hinf_hh, | { } 182 | "ninf_hh", &ninf_hh, | { } 183 | "mtau_hh", &mtau_hh, | { } 184 | "htau_hh", &htau_hh, | { } 185 | "ntau_hh", &ntau_hh, | { } 186 | "usetable_hh", &usetable_hh, | { } 187 | 0,0 | { 188 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:189:31: warning: missing braces around initializer [-Wmissing-braces] 189 | static DoubVec hoc_vdoub[] = { | ^ 190 | 0,0,0 | { 191 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:258:46: warning: missing braces around initializer [-Wmissing-braces] 258 | static HocStateTolerance _hoc_state_tol[] = { | ^ 259 | 0,0 | { 260 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_hh_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:271:13: warning: unused variable '_vectorized' [-Wunused-variable] 271 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_check_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:356:10: warning: unused variable '_xi' [-Wunused-variable] 356 | double _xi, _tmax; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:39: warning: unused variable '_ix' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:355:35: warning: unused variable '_j' [-Wunused-variable] 355 | static int _maktable=1; int _i, _j, _ix = 0; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_n_rates': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:385:104: warning: unused variable '_j' [-Wunused-variable] 385 | static void _n_rates(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _lv){ int _i, _j; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:488:22: warning: unused variable '_v' [-Wunused-variable] 488 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:501:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 501 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:516:22: warning: unused variable '_v' [-Wunused-variable] 516 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:18: warning: unused variable '_save' [-Wunused-variable] 553 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:553:7: warning: unused variable '_i' [-Wunused-variable] 553 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_nrn_jacob__hh': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:658:20: warning: unused variable '_ppvar' [-Wunused-variable] 658 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:714:6: warning: unused variable '_i' [-Wunused-variable] 714 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:710:13: warning: 'terminal' defined but not used [-Wunused-function] 710 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:318:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 318 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:316:12: warning: '_ninits' defined but not used [-Wunused-variable] 316 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:315:12: warning: 'error' defined but not used [-Wunused-variable] 315 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:313:14: warning: 'modelname' defined but not used [-Wunused-variable] 313 | static char *modelname = "hh.mod squid sodium, potassium, and leak channels"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:312:12: warning: '_reset' defined but not used [-Wunused-variable] 312 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:192:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 192 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/hh.c:174:16: warning: 'delta_t' defined but not used [-Wunused-variable] 174 | static double delta_t = 0.01; | ^~~~~~~ [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:151:34: warning: missing braces around initializer [-Wmissing-braces] 151 | static VoidFunc hoc_intfunc[] = { | ^ 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:154:38: warning: missing braces around initializer [-Wmissing-braces] 154 | static Member_func _member_func[] = { | ^ 155 | "loc", _hoc_loc_pnt, | { } 156 | "has_loc", _hoc_has_loc, | { } 157 | "get_loc", _hoc_get_loc_pnt, | { } 158 | "E", _hoc_E, | { } 159 | "I", _hoc_I, | { } 160 | "M", _hoc_M, | { } 161 | "deriv", _hoc_deriv, | { } 162 | "firetimebound", _hoc_firetimebound, | { } 163 | "factors", _hoc_factors, | { } 164 | "fixprecondition", _hoc_fixprecondition, | { } 165 | "newstates", _hoc_newstates, | { } 166 | "search", _hoc_search, | { } 167 | "update", _hoc_update, | { } 168 | 0, 0 | { 169 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:190:44: warning: missing braces around initializer [-Wmissing-braces] 190 | static HocParmLimits _hoc_parm_limits[] = { | ^ 191 | "eps_IntFire4", 1e-09, 0.01, | { { }} 192 | "taueps_IntFire4", 1e-09, 1e+09, | { { }} 193 | "taum", 0, 1e+09, | { { }} 194 | "taui2", 0, 1e+09, | { { }} 195 | "taui1", 0, 1e+09, | { { }} 196 | "taue", 0, 1e+09, | { { }} 197 | 0,0,0 | { { 198 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:199:42: warning: missing braces around initializer [-Wmissing-braces] 199 | static HocParmUnits _hoc_parm_units[] = { | ^ 200 | "eps_IntFire4", "1e-9", | { } 201 | "taueps_IntFire4", "1e-9", | { } 202 | "taue", "ms", | { } 203 | "taui1", "ms", | { } 204 | "taui2", "ms", | { } 205 | "taum", "ms", | { } 206 | "ae", "1/ms", | { } 207 | "ai1", "1/ms", | { } 208 | "ai2", "1/ms", | { } 209 | 0,0 | { 210 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:212:33: warning: missing braces around initializer [-Wmissing-braces] 212 | static DoubScal hoc_scdoub[] = { | ^ 213 | "ib_IntFire4", &ib_IntFire4, | { } 214 | "eps_IntFire4", &eps_IntFire4, | { } 215 | "taueps_IntFire4", &taueps_IntFire4, | { } 216 | 0,0 | { 217 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:218:31: warning: missing braces around initializer [-Wmissing-braces] 218 | static DoubVec hoc_vdoub[] = { | ^ 219 | 0,0,0 | { 220 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:254:15: warning: unused variable 'prop_ion' [-Wunused-variable] 254 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_intfire4_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:288:13: warning: unused variable '_vectorized' [-Wunused-variable] 288 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:18: warning: unused variable '_save' [-Wunused-variable] 665 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:665:7: warning: unused variable '_i' [-Wunused-variable] 665 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_init__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:19: warning: unused variable '_v' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:685:7: warning: unused variable '_nd' [-Wunused-variable] 685 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_nrn_state__IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:704:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 704 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:703:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 703 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:723:6: warning: unused variable '_i' [-Wunused-variable] 723 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:722:21: warning: unused variable '_p' [-Wunused-variable] 722 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:719:13: warning: 'terminal' defined but not used [-Wunused-function] 719 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:30:19: warning: '_nrn_state__IntFire4' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire4 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:702:13: note: in expansion of macro 'nrn_state' 702 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:28:22: warning: '_nrn_current__IntFire4' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire4 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:698:15: note: in expansion of macro '_nrn_current' 698 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:319:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 319 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:317:12: warning: '_ninits' defined but not used [-Wunused-variable] 317 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:316:12: warning: 'error' defined but not used [-Wunused-variable] 316 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:314:14: warning: 'modelname' defined but not used [-Wunused-variable] 314 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:313:12: warning: '_reset' defined but not used [-Wunused-variable] 313 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:221:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 221 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:146:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 146 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:273:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 273 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c: In function 'search_IntFire4': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:596:8: warning: '_lsearch' may be used uninitialized in this function [-Wmaybe-uninitialized] 596 | return _lsearch; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire4.c:585:17: warning: '_lt2' may be used uninitialized in this function [-Wmaybe-uninitialized] 585 | while ( _lt2 - _lt1 > 1e-6 && flag == 0.0 ) { | ~~~~~^~~~~~ [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:96:34: warning: missing braces around initializer [-Wmissing-braces] 96 | static VoidFunc hoc_intfunc[] = { | ^ 97 | "setdata_pas", _hoc_setdata, | { } 98 | 0, 0 | { 99 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:102:44: warning: missing braces around initializer [-Wmissing-braces] 102 | static HocParmLimits _hoc_parm_limits[] = { | ^ 103 | "g_pas", 0, 1e+09, | { { }} 104 | 0,0,0 | { { 105 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:106:42: warning: missing braces around initializer [-Wmissing-braces] 106 | static HocParmUnits _hoc_parm_units[] = { | ^ 107 | "g_pas", "S/cm2", | { } 108 | "e_pas", "mV", | { } 109 | "i_pas", "mA/cm2", | { } 110 | 0,0 | { 111 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:113:33: warning: missing braces around initializer [-Wmissing-braces] 113 | static DoubScal hoc_scdoub[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:116:31: warning: missing braces around initializer [-Wmissing-braces] 116 | static DoubVec hoc_vdoub[] = { | ^ 117 | 0,0,0 | { 118 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:141:28: warning: unused variable '_ppvar' [-Wunused-variable] 141 | double *_p; Datum *_ppvar; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:140:15: warning: unused variable 'prop_ion' [-Wunused-variable] 140 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_passive_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:158:13: warning: unused variable '_vectorized' [-Wunused-variable] 158 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:18: warning: unused variable '_save' [-Wunused-variable] 182 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:182:7: warning: unused variable '_i' [-Wunused-variable] 182 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_nrn_jacob__pas': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:256:20: warning: unused variable '_ppvar' [-Wunused-variable] 256 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:287:6: warning: unused variable '_i' [-Wunused-variable] 287 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:286:21: warning: unused variable '_p' [-Wunused-variable] 286 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:283:13: warning: 'terminal' defined but not used [-Wunused-function] 283 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:179:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 179 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:177:12: warning: '_ninits' defined but not used [-Wunused-variable] 177 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:176:12: warning: 'error' defined but not used [-Wunused-variable] 176 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:174:14: warning: 'modelname' defined but not used [-Wunused-variable] 174 | static char *modelname = "passive membrane channel"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:173:12: warning: '_reset' defined but not used [-Wunused-variable] 173 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:119:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 119 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/passive.c:65:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 65 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ [ 63%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | 0, 0 | { 119 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:122:44: warning: missing braces around initializer [-Wmissing-braces] 122 | static HocParmLimits _hoc_parm_limits[] = { | ^ 123 | "dur", 0, 1e+09, | { { }} 124 | 0,0,0 | { { 125 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:126:42: warning: missing braces around initializer [-Wmissing-braces] 126 | static HocParmUnits _hoc_parm_units[] = { | ^ 127 | "del", "ms", | { } 128 | "dur", "ms", | { } 129 | "amp", "nA", | { } 130 | "i", "nA", | { } 131 | 0,0 | { 132 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:134:33: warning: missing braces around initializer [-Wmissing-braces] 134 | static DoubScal hoc_scdoub[] = { | ^ 135 | 0,0 | { 136 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:137:31: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubVec hoc_vdoub[] = { | ^ 138 | 0,0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:165:15: warning: unused variable 'prop_ion' [-Wunused-variable] 165 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_stim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:195:13: warning: unused variable '_vectorized' [-Wunused-variable] 195 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:18: warning: unused variable '_save' [-Wunused-variable] 224 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:224:7: warning: unused variable '_i' [-Wunused-variable] 224 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_nrn_jacob__IClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:332:20: warning: unused variable '_ppvar' [-Wunused-variable] 332 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:369:6: warning: unused variable '_i' [-Wunused-variable] 369 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:368:21: warning: unused variable '_p' [-Wunused-variable] 368 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:365:13: warning: 'terminal' defined but not used [-Wunused-function] 365 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:221:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 221 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:219:12: warning: '_ninits' defined but not used [-Wunused-variable] 219 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:218:12: warning: 'error' defined but not used [-Wunused-variable] 218 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:216:14: warning: 'modelname' defined but not used [-Wunused-variable] 216 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:215:12: warning: '_reset' defined but not used [-Wunused-variable] 215 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:140:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 140 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:106:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 106 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:67:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 67 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/stim.c:183:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 183 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "icur", _hoc_icur, | { } 136 | "update", _hoc_update, | { } 137 | "vstim", _hoc_vstim, | { } 138 | 0, 0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:144:44: warning: missing braces around initializer [-Wmissing-braces] 144 | static HocParmLimits _hoc_parm_limits[] = { | ^ 145 | "dur", 0, 1e+09, | { { }} 146 | "fac", 1, 10, | { { }} 147 | "gain", 0, 1e+09, | { { }} 148 | "rstim", 1e-09, 1e+09, | { { }} 149 | "tau2", 0, 1e+09, | { { }} 150 | "tau1", 0, 1e+09, | { { }} 151 | 0,0,0 | { { 152 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:153:42: warning: missing braces around initializer [-Wmissing-braces] 153 | static HocParmUnits _hoc_parm_units[] = { | ^ 154 | "dur", "ms", | { } 155 | "amp", "mV", | { } 156 | "rstim", "megohm", | { } 157 | "tau1", "ms", | { } 158 | "tau2", "ms", | { } 159 | "e0", "mV", | { } 160 | "vo0", "mV", | { } 161 | "vi0", "mV", | { } 162 | "fac", "1.0", | { } 163 | "e", "mV", | { } 164 | "vo", "mV", | { } 165 | "vi", "mV", | { } 166 | "i", "nA", | { } 167 | 0,0 | { 168 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:172:33: warning: missing braces around initializer [-Wmissing-braces] 172 | static DoubScal hoc_scdoub[] = { | ^ 173 | 0,0 | { 174 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:175:31: warning: missing braces around initializer [-Wmissing-braces] 175 | static DoubVec hoc_vdoub[] = { | ^ 176 | 0,0,0 | { 177 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:213:15: warning: unused variable 'prop_ion' [-Wunused-variable] 213 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_vclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:248:13: warning: unused variable '_vectorized' [-Wunused-variable] 248 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'icur_VClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:306:9: warning: unused variable '_lvout' [-Wunused-variable] 306 | double _lvout ; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:382:7: warning: unused variable '_i' [-Wunused-variable] 382 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:561:6: warning: unused variable '_i' [-Wunused-variable] 561 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:558:13: warning: 'terminal' defined but not used [-Wunused-function] 558 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:274:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 274 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:269:14: warning: 'modelname' defined but not used [-Wunused-variable] 269 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:268:12: warning: '_reset' defined but not used [-Wunused-variable] 268 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:169:16: warning: 'delta_t' defined but not used [-Wunused-variable] 169 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/vclmp.c:236:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 236 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:114:34: warning: missing braces around initializer [-Wmissing-braces] 114 | static VoidFunc hoc_intfunc[] = { | ^ 115 | 0,0 | { 116 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:117:38: warning: missing braces around initializer [-Wmissing-braces] 117 | static Member_func _member_func[] = { | ^ 118 | "loc", _hoc_loc_pnt, | { } 119 | "has_loc", _hoc_has_loc, | { } 120 | "get_loc", _hoc_get_loc_pnt, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:125:44: warning: missing braces around initializer [-Wmissing-braces] 125 | static HocParmLimits _hoc_parm_limits[] = { | ^ 126 | "tau", 1e-09, 1e+09, | { { }} 127 | 0,0,0 | { { 128 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:129:42: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmUnits _hoc_parm_units[] = { | ^ 130 | "tau", "ms", | { } 131 | "e", "mV", | { } 132 | "g", "uS", | { } 133 | "i", "nA", | { } 134 | 0,0 | { 135 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:139:33: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubScal hoc_scdoub[] = { | ^ 140 | 0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:142:31: warning: missing braces around initializer [-Wmissing-braces] 142 | static DoubVec hoc_vdoub[] = { | ^ 143 | 0,0,0 | { 144 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:178:15: warning: unused variable 'prop_ion' [-Wunused-variable] 178 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:202:46: warning: missing braces around initializer [-Wmissing-braces] 202 | static HocStateTolerance _hoc_state_tol[] = { | ^ 203 | 0,0 | { 204 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_expsyn_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:213:13: warning: unused variable '_vectorized' [-Wunused-variable] 213 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_net_receive__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:269:23: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 269 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_spec': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:288:22: warning: unused variable '_v' [-Wunused-variable] 288 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_map': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:299:17: warning: variable '_p' set but not used [-Wunused-but-set-variable] 299 | double* _p; Datum* _ppvar; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_ode_matsol': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:314:22: warning: unused variable '_v' [-Wunused-variable] 314 | Node* _nd; double _v; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:18: warning: unused variable '_save' [-Wunused-variable] 325 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:325:7: warning: unused variable '_i' [-Wunused-variable] 325 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_nrn_jacob__ExpSyn': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:406:20: warning: unused variable '_ppvar' [-Wunused-variable] 406 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:460:6: warning: unused variable '_i' [-Wunused-variable] 460 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:456:13: warning: 'terminal' defined but not used [-Wunused-function] 456 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:244:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 244 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:242:12: warning: '_ninits' defined but not used [-Wunused-variable] 242 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:241:12: warning: 'error' defined but not used [-Wunused-variable] 241 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:239:14: warning: 'modelname' defined but not used [-Wunused-variable] 239 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:238:12: warning: '_reset' defined but not used [-Wunused-variable] 238 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:145:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 145 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:136:16: warning: 'delta_t' defined but not used [-Wunused-variable] 136 | static double delta_t = 0.01; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:109:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 109 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:70:16: warning: '_extcall_thread' defined but not used [-Wunused-variable] 70 | static Datum* _extcall_thread; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/expsyn.c:195:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 195 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:113:34: warning: missing braces around initializer [-Wmissing-braces] 113 | static VoidFunc hoc_intfunc[] = { | ^ 114 | 0,0 | { 115 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:116:38: warning: missing braces around initializer [-Wmissing-braces] 116 | static Member_func _member_func[] = { | ^ 117 | "loc", _hoc_loc_pnt, | { } 118 | "has_loc", _hoc_has_loc, | { } 119 | "get_loc", _hoc_get_loc_pnt, | { } 120 | "M", _hoc_M, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:127:44: warning: missing braces around initializer [-Wmissing-braces] 127 | static HocParmLimits _hoc_parm_limits[] = { | ^ 128 | 0,0,0 | { { 129 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:130:42: warning: missing braces around initializer [-Wmissing-braces] 130 | static HocParmUnits _hoc_parm_units[] = { | ^ 131 | "tau", "ms", | { } 132 | "refrac", "ms", | { } 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:136:33: warning: missing braces around initializer [-Wmissing-braces] 136 | static DoubScal hoc_scdoub[] = { | ^ 137 | 0,0 | { 138 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:139:31: warning: missing braces around initializer [-Wmissing-braces] 139 | static DoubVec hoc_vdoub[] = { | ^ 140 | 0,0,0 | { 141 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:164:15: warning: unused variable 'prop_ion' [-Wunused-variable] 164 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_intfire1_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:196:13: warning: unused variable '_vectorized' [-Wunused-variable] 196 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_net_receive__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:258:38: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 258 | { double* _p; Datum* _ppvar; Datum* _thread; _NrnThread* _nt; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:18: warning: unused variable '_save' [-Wunused-variable] 282 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:282:7: warning: unused variable '_i' [-Wunused-variable] 282 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_init__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:19: warning: unused variable '_v' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:294:7: warning: unused variable '_nd' [-Wunused-variable] 294 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_nrn_state__IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:313:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 313 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:312:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 312 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:332:6: warning: unused variable '_i' [-Wunused-variable] 332 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:331:21: warning: unused variable '_p' [-Wunused-variable] 331 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:328:13: warning: 'terminal' defined but not used [-Wunused-function] 328 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:30:19: warning: '_nrn_state__IntFire1' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__IntFire1 | ^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:311:13: note: in expansion of macro 'nrn_state' 311 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:28:22: warning: '_nrn_current__IntFire1' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__IntFire1 | ^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:307:15: note: in expansion of macro '_nrn_current' 307 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:227:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 227 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:225:12: warning: '_ninits' defined but not used [-Wunused-variable] 225 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:224:12: warning: 'error' defined but not used [-Wunused-variable] 224 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:222:14: warning: 'modelname' defined but not used [-Wunused-variable] 222 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:221:12: warning: '_reset' defined but not used [-Wunused-variable] 221 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:142:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 142 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:108:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 108 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:181:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 181 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c: In function 'M_IntFire1': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/intfire1.c:243:8: warning: '_lM' may be used uninitialized in this function [-Wmaybe-uninitialized] 243 | return _lM; | ^~~ [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:128:34: warning: missing braces around initializer [-Wmissing-braces] 128 | static VoidFunc hoc_intfunc[] = { | ^ 129 | 0,0 | { 130 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:131:38: warning: missing braces around initializer [-Wmissing-braces] 131 | static Member_func _member_func[] = { | ^ 132 | "loc", _hoc_loc_pnt, | { } 133 | "has_loc", _hoc_has_loc, | { } 134 | "get_loc", _hoc_get_loc_pnt, | { } 135 | "erand", _hoc_erand, | { } 136 | "init_sequence", _hoc_init_sequence, | { } 137 | "invl", _hoc_invl, | { } 138 | "next_invl", _hoc_next_invl, | { } 139 | "noiseFromRandom123", _hoc_noiseFromRandom123, | { } 140 | "noiseFromRandom", _hoc_noiseFromRandom, | { } 141 | "seed", _hoc_seed, | { } 142 | 0, 0 | { 143 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:150:44: warning: missing braces around initializer [-Wmissing-braces] 150 | static HocParmLimits _hoc_parm_limits[] = { | ^ 151 | "interval", 1e-09, 1e+09, | { { }} 152 | "noise", 0, 1, | { { }} 153 | "number", 0, 1e+09, | { { }} 154 | 0,0,0 | { { 155 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:156:42: warning: missing braces around initializer [-Wmissing-braces] 156 | static HocParmUnits _hoc_parm_units[] = { | ^ 157 | "interval", "ms", | { } 158 | "start", "ms", | { } 159 | 0,0 | { 160 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:162:33: warning: missing braces around initializer [-Wmissing-braces] 162 | static DoubScal hoc_scdoub[] = { | ^ 163 | 0,0 | { 164 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:165:31: warning: missing braces around initializer [-Wmissing-braces] 165 | static DoubVec hoc_vdoub[] = { | ^ 166 | 0,0,0 | { 167 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_netstim_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:228:13: warning: unused variable '_vectorized' [-Wunused-variable] 228 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:18: warning: unused variable '_save' [-Wunused-variable] 586 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:586:7: warning: unused variable '_i' [-Wunused-variable] 586 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_init__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:19: warning: unused variable '_v' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:617:7: warning: unused variable '_nd' [-Wunused-variable] 617 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_nrn_state__NetStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:636:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 636 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:635:20: warning: variable '_ppvar' set but not used [-Wunused-but-set-variable] 635 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:655:6: warning: unused variable '_i' [-Wunused-variable] 655 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:654:21: warning: unused variable '_p' [-Wunused-variable] 654 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:651:13: warning: 'terminal' defined but not used [-Wunused-function] 651 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:30:19: warning: '_nrn_state__NetStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__NetStim | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:634:13: note: in expansion of macro 'nrn_state' 634 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type) { | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:28:22: warning: '_nrn_current__NetStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__NetStim | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:630:15: note: in expansion of macro '_nrn_current' 630 | static double _nrn_current(double* _p, Datum* _ppvar, Datum* _thread, _NrnThread* _nt, double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:518:13: warning: 'bbcore_read' defined but not used [-Wunused-function] 518 | static void bbcore_read(double* x, int* d, int* xx, int* offset, _threadargsproto_) { | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:261:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 261 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:259:12: warning: '_ninits' defined but not used [-Wunused-variable] 259 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:258:12: warning: 'error' defined but not used [-Wunused-variable] 258 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:256:14: warning: 'modelname' defined but not used [-Wunused-variable] 256 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:255:12: warning: '_reset' defined but not used [-Wunused-variable] 255 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:168:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 168 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:123:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 123 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/netstim.c:211:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 211 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 64%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:111:34: warning: missing braces around initializer [-Wmissing-braces] 111 | static VoidFunc hoc_intfunc[] = { | ^ 112 | 0,0 | { 113 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:114:38: warning: missing braces around initializer [-Wmissing-braces] 114 | static Member_func _member_func[] = { | ^ 115 | "loc", _hoc_loc_pnt, | { } 116 | "has_loc", _hoc_has_loc, | { } 117 | "get_loc", _hoc_get_loc_pnt, | { } 118 | "initps", _hoc_initps, | { } 119 | "play", _hoc_play, | { } 120 | "sendgroup", _hoc_sendgroup, | { } 121 | 0, 0 | { 122 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:129:44: warning: missing braces around initializer [-Wmissing-braces] 129 | static HocParmLimits _hoc_parm_limits[] = { | ^ 130 | 0,0,0 | { { 131 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:132:42: warning: missing braces around initializer [-Wmissing-braces] 132 | static HocParmUnits _hoc_parm_units[] = { | ^ 133 | 0,0 | { 134 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:137:33: warning: missing braces around initializer [-Wmissing-braces] 137 | static DoubScal hoc_scdoub[] = { | ^ 138 | 0,0 | { 139 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:140:31: warning: missing braces around initializer [-Wmissing-braces] 140 | static DoubVec hoc_vdoub[] = { | ^ 141 | 0,0,0 | { 142 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:166:15: warning: unused variable 'prop_ion' [-Wunused-variable] 166 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_pattern_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:198:13: warning: unused variable '_vectorized' [-Wunused-variable] 198 | int _vectorized = 0; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:18: warning: unused variable '_save' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:381:7: warning: unused variable '_i' [-Wunused-variable] 381 | int _i; double _save;_ninits++; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_init__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:28: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:19: warning: unused variable '_v' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:393:7: warning: unused variable '_nd' [-Wunused-variable] 393 | Node *_nd; double _v; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_nrn_state__PatternStim': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:34: warning: variable '_ni' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:409:7: warning: variable '_nd' set but not used [-Wunused-but-set-variable] 409 | Node *_nd; double _v = 0.0; int* _ni; int _iml, _cntml; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:426:6: warning: unused variable '_i' [-Wunused-variable] 426 | int _i; static int _first = 1; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:423:13: warning: 'terminal' defined but not used [-Wunused-function] 423 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:30:19: warning: '_nrn_state__PatternStim' defined but not used [-Wunused-function] 30 | #define nrn_state _nrn_state__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:408:13: note: in expansion of macro 'nrn_state' 408 | static void nrn_state(_NrnThread* _nt, _Memb_list* _ml, int _type){ | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:28:22: warning: '_nrn_current__PatternStim' defined but not used [-Wunused-function] 28 | #define _nrn_current _nrn_current__PatternStim | ^~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:404:15: note: in expansion of macro '_nrn_current' 404 | static double _nrn_current(double _v){double _current=0.;v=_v;{ | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:230:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 230 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:227:12: warning: 'error' defined but not used [-Wunused-variable] 227 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:225:14: warning: 'modelname' defined but not used [-Wunused-variable] 225 | static char *modelname = ""; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:224:12: warning: '_reset' defined but not used [-Wunused-variable] 224 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:143:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 143 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/pattern.c:182:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 182 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 65%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:123:34: warning: missing braces around initializer [-Wmissing-braces] 123 | static VoidFunc hoc_intfunc[] = { | ^ 124 | 0,0 | { 125 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:126:38: warning: missing braces around initializer [-Wmissing-braces] 126 | static Member_func _member_func[] = { | ^ 127 | "loc", _hoc_loc_pnt, | { } 128 | "has_loc", _hoc_has_loc, | { } 129 | "get_loc", _hoc_get_loc_pnt, | { } 130 | "icur", _hoc_icur, | { } 131 | "vstim", _hoc_vstim, | { } 132 | 0, 0 | { 133 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:136:44: warning: missing braces around initializer [-Wmissing-braces] 136 | static HocParmLimits _hoc_parm_limits[] = { | ^ 137 | "dur3", 0, 1e+09, | { { }} 138 | "dur2", 0, 1e+09, | { { }} 139 | "rs", 1e-09, 1e+09, | { { }} 140 | 0,0,0 | { { 141 | }; | }} /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:142:42: warning: missing braces around initializer [-Wmissing-braces] 142 | static HocParmUnits _hoc_parm_units[] = { | ^ 143 | "rs", "megohm", | { } 144 | "dur1", "ms", | { } 145 | "amp1", "mV", | { } 146 | "dur2", "ms", | { } 147 | "amp2", "mV", | { } 148 | "dur3", "ms", | { } 149 | "amp3", "mV", | { } 150 | "i", "nA", | { } 151 | "vc", "mV", | { } 152 | 0,0 | { 153 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:156:33: warning: missing braces around initializer [-Wmissing-braces] 156 | static DoubScal hoc_scdoub[] = { | ^ 157 | 0,0 | { 158 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:159:31: warning: missing braces around initializer [-Wmissing-braces] 159 | static DoubVec hoc_vdoub[] = { | ^ 160 | 0,0,0 | { 161 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:192:15: warning: unused variable 'prop_ion' [-Wunused-variable] 192 | Prop *prop_ion; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_svclmp_reg_': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:226:13: warning: unused variable '_vectorized' [-Wunused-variable] 226 | int _vectorized = 1; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'initmodel': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:18: warning: unused variable '_save' [-Wunused-variable] 317 | int _i; double _save;{ | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:317:7: warning: unused variable '_i' [-Wunused-variable] 317 | int _i; double _save;{ | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_nrn_jacob__SEClamp': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:420:20: warning: unused variable '_ppvar' [-Wunused-variable] 420 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function '_initlists': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:488:6: warning: unused variable '_i' [-Wunused-variable] 488 | int _i; static int _first = 1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:487:21: warning: unused variable '_p' [-Wunused-variable] 487 | double _x; double* _p = &_x; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:484:13: warning: 'terminal' defined but not used [-Wunused-function] 484 | static void terminal(){} | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:252:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 252 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:250:12: warning: '_ninits' defined but not used [-Wunused-variable] 250 | static int _ninits = 0; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:249:12: warning: 'error' defined but not used [-Wunused-variable] 249 | static int error; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:247:14: warning: 'modelname' defined but not used [-Wunused-variable] 247 | static char *modelname = "svclmp.mod"; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:246:12: warning: '_reset' defined but not used [-Wunused-variable] 246 | static int _reset; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:162:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 162 | static double _sav_indep; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:154:16: warning: 'delta_t' defined but not used [-Wunused-variable] 154 | static double delta_t = 1; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:118:14: warning: '_hoc_setdata' defined but not used [-Wunused-function] 118 | static void _hoc_setdata(void* _vptr) { Prop* _prop; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c: In function 'nrn_alloc': /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/svclmp.c:214:23: warning: '_ppvar' may be used uninitialized in this function [-Wmaybe-uninitialized] 214 | _prop->dparam = _ppvar; | ~~~~~~~~~~~~~~^~~~~~~~ [ 65%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/ACG.cpp [ 65%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Binomial.cpp [ 65%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Complex.cpp [ 65%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/DiscUnif.cpp [ 66%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Erlang.cpp [ 66%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Geom.cpp [ 66%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/HypGeom.cpp [ 66%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/LogNorm.cpp [ 66%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/MLCG.cpp [ 67%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/NegExp.cpp [ 67%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Normal.cpp [ 67%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Poisson.cpp [ 67%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/RNG.cpp [ 67%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Random.cpp [ 68%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:93:8: warning: when initialized here [-Wreorder] 93 | inline RandomInteger::RandomInteger(long low, long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(long int, RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:99:8: warning: when initialized here [-Wreorder] 99 | inline RandomInteger::RandomInteger(long high, RNG *gen) | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h: In constructor 'RandomInteger::RandomInteger(RNG*)': /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:54:8: warning: 'RandomInteger::pHigh' will be initialized after [-Wreorder] 54 | long pHigh; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:52:8: warning: 'RNG* RandomInteger::pGenerator' [-Wreorder] 52 | RNG *pGenerator; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/gnu/RndInt.h:106:8: warning: when initialized here [-Wreorder] 106 | inline RandomInteger::RandomInteger(RNG *gen) | ^~~~~~~~~~~~~ [ 68%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp [ 68%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplStat.cpp [ 68%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Uniform.cpp [ 68%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/Weibull.cpp [ 69%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/builtin.cpp [ 69%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/d_avec.cpp [ 69%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/gnu/d_vec.cpp [ 69%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c: In function 'abort_run': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c:50:10: warning: unused variable 'tmpstr' [-Wunused-variable] 50 | char tmpstr[4]; | ^~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/abort.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adams.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adams.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adeuler.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adeuler.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adrunge.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/adrunge.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/advance.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/advance.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 70%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/boundary.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/boundary.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 71%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crank.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crank.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 71%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 71%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:104:17: warning: missing braces around initializer [-Wmissing-braces] 104 | } eh0001_ = { 1, 6 }; | ^ | { } /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'lsoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2489:9: note: in expansion of macro 'ls0001_1' 2489 | if (ls0001_1.init == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2497:5: note: in expansion of macro 'ls0001_1' 2497 | ls0001_1.init = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2502:5: note: in expansion of macro 'ls0001_1' 2502 | ls0001_1.ntrep = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2520:18: note: in expansion of macro 'ls0001_1' 2520 | if (neq[1] > ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2524:5: note: in expansion of macro 'ls0001_1' 2524 | ls0001_1.n = neq[1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2540:25: note: in expansion of macro 'ls0001_1' 2540 | if (ml < 0 || ml >= ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2543:25: note: in expansion of macro 'ls0001_1' 2543 | if (mu < 0 || mu >= ls0001_1.n) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2553:5: note: in expansion of macro 'ls0001_1' 2553 | ls0001_1.mxstep = mxstp0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2554:5: note: in expansion of macro 'ls0001_1' 2554 | ls0001_1.mxhnil = mxhnl0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2555:5: note: in expansion of macro 'ls0001_1' 2555 | ls0001_1.hmxi = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2556:5: note: in expansion of macro 'ls0001_1' 2556 | ls0001_1.hmin = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2569:5: note: in expansion of macro 'ls0001_1' 2569 | ls0001_1.mxstep = iwork[6]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2570:9: note: in expansion of macro 'ls0001_1' 2570 | if (ls0001_1.mxstep < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2573:9: note: in expansion of macro 'ls0001_1' 2573 | if (ls0001_1.mxstep == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2574:9: note: in expansion of macro 'ls0001_1' 2574 | ls0001_1.mxstep = mxstp0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2576:5: note: in expansion of macro 'ls0001_1' 2576 | ls0001_1.mxhnil = iwork[7]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2577:9: note: in expansion of macro 'ls0001_1' 2577 | if (ls0001_1.mxhnil < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2580:9: note: in expansion of macro 'ls0001_1' 2580 | if (ls0001_1.mxhnil == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2581:9: note: in expansion of macro 'ls0001_1' 2581 | ls0001_1.mxhnil = mxhnl0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2611:5: note: in expansion of macro 'ls0001_1' 2611 | ls0001_1.hmxi = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2613:9: note: in expansion of macro 'ls0001_1' 2613 | ls0001_1.hmxi = 1. / hmax; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2615:5: note: in expansion of macro 'ls0001_1' 2615 | ls0001_1.hmin = rwork[7]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2616:9: note: in expansion of macro 'ls0001_1' 2616 | if (ls0001_1.hmin < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2637:9: note: in expansion of macro 'ls0001_1' 2637 | ls0001_1.meth = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2640:9: note: in expansion of macro 'ls0001_1' 2640 | ls0001_1.nyh = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2640:24: note: in expansion of macro 'ls0001_1' 2640 | ls0001_1.nyh = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2642:5: note: in expansion of macro 'ls0001_1' 2642 | ls0001_1.lyh = 21; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2643:37: note: in expansion of macro 'ls0001_1' 2643 | len1n = (lsa001_1.mxordn + 1) * ls0001_1.nyh + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2644:37: note: in expansion of macro 'ls0001_1' 2644 | len1s = (lsa001_1.mxords + 1) * ls0001_1.nyh + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2645:5: note: in expansion of macro 'ls0001_1' 2645 | ls0001_1.lwm = len1s + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2647:17: note: in expansion of macro 'ls0001_1' 2647 | lenwm = ls0001_1.n * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2647:30: note: in expansion of macro 'ls0001_1' 2647 | lenwm = ls0001_1.n * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2650:40: note: in expansion of macro 'ls0001_1' 2650 | lenwm = ((ml << 1) + mu + 1) * ls0001_1.n + 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2654:9: note: in expansion of macro 'ls0001_1' 2654 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2658:12: note: in expansion of macro 'ls0001_1' 2658 | len2 = ls0001_1.n * 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2664:5: note: in expansion of macro 'ls0001_1' 2664 | ls0001_1.liwm = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2665:13: note: in expansion of macro 'ls0001_1' 2665 | leniw = ls0001_1.n + 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2667:9: note: in expansion of macro 'ls0001_1' 2667 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2683:5: note: in expansion of macro 'ls0001_1' 2683 | ls0001_1.lewt = len1 + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2689:5: note: in expansion of macro 'ls0001_1' 2689 | ls0001_1.lewt = len1c + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:5: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:22: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2699:38: note: in expansion of macro 'ls0001_1' 2699 | ls0001_1.lsavf = ls0001_1.lewt + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:5: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:22: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2700:39: note: in expansion of macro 'ls0001_1' 2700 | ls0001_1.lacor = ls0001_1.lsavf + ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2719:11: note: in expansion of macro 'ls0001_1' 2719 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2740:5: note: in expansion of macro 'ls0001_1' 2740 | ls0001_1.jstart = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2741:9: note: in expansion of macro 'ls0001_1' 2741 | if (ls0001_1.n == ls0001_1.nyh) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2741:23: note: in expansion of macro 'ls0001_1' 2741 | if (ls0001_1.n == ls0001_1.nyh) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:10: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:25: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2746:38: note: in expansion of macro 'ls0001_1' 2746 | i1 = ls0001_1.lyh + ls0001_1.l * ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:10: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:26: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2747:49: note: in expansion of macro 'ls0001_1' 2747 | i2 = ls0001_1.lyh + (ls0001_1.maxord + 1) * ls0001_1.nyh - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2767:5: note: in expansion of macro 'ls0001_1' 2767 | ls0001_1.uround = d1mach_(&c__4); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2768:5: note: in expansion of macro 'ls0001_1' 2768 | ls0001_1.tn = *t; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2770:5: note: in expansion of macro 'ls0001_1' 2770 | ls0001_1.maxord = lsa001_1.mxordn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2782:5: note: in expansion of macro 'ls0001_1' 2782 | ls0001_1.jstart = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2783:5: note: in expansion of macro 'ls0001_1' 2783 | ls0001_1.nhnil = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2784:5: note: in expansion of macro 'ls0001_1' 2784 | ls0001_1.nst = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2785:5: note: in expansion of macro 'ls0001_1' 2785 | ls0001_1.nje = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2786:5: note: in expansion of macro 'ls0001_1' 2786 | ls0001_1.nslast = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2787:5: note: in expansion of macro 'ls0001_1' 2787 | ls0001_1.hu = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2788:5: note: in expansion of macro 'ls0001_1' 2788 | ls0001_1.nqu = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2790:5: note: in expansion of macro 'ls0001_1' 2790 | ls0001_1.miter = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2791:5: note: in expansion of macro 'ls0001_1' 2791 | ls0001_1.ccmax = .3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2792:5: note: in expansion of macro 'ls0001_1' 2792 | ls0001_1.maxcor = 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2793:5: note: in expansion of macro 'ls0001_1' 2793 | ls0001_1.msbp = 20; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2794:5: note: in expansion of macro 'ls0001_1' 2794 | ls0001_1.mxncf = 10; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2797:11: note: in expansion of macro 'ls0001_1' 2797 | lf0 = ls0001_1.lyh + ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2797:26: note: in expansion of macro 'ls0001_1' 2797 | lf0 = ls0001_1.lyh + ls0001_1.nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2799:5: note: in expansion of macro 'ls0001_1' 2799 | ls0001_1.nfe = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2802:11: note: in expansion of macro 'ls0001_1' 2802 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2805:19: note: in expansion of macro 'ls0001_1' 2805 | rwork[i + ls0001_1.lyh - 1] = y[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2809:5: note: in expansion of macro 'ls0001_1' 2809 | ls0001_1.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2810:5: note: in expansion of macro 'ls0001_1' 2810 | ls0001_1.h = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:13: note: in expansion of macro 'ls0001_1' 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:58: note: in expansion of macro 'ls0001_1' 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2812:19: note: in expansion of macro 'ls0001_1' 2812 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2813:11: note: in expansion of macro 'ls0001_1' 2813 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2815:23: note: in expansion of macro 'ls0001_1' 2815 | if (rwork[i + ls0001_1.lewt - 1] <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2819:19: note: in expansion of macro 'ls0001_1' 2819 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2819:55: note: in expansion of macro 'ls0001_1' 2819 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2849:17: note: in expansion of macro 'ls0001_1' 2849 | if (tdist < ls0001_1.uround * 2. * w0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2856:11: note: in expansion of macro 'ls0001_1' 2856 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2868:11: note: in expansion of macro 'ls0001_1' 2868 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2883:22: note: in expansion of macro 'ls0001_1' 2883 | d_1 = tol, d_2 = ls0001_1.uround * 100.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:20: note: in expansion of macro 'ls0001_1' 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:52: note: in expansion of macro 'ls0001_1' 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2897:20: note: in expansion of macro 'ls0001_1' 2897 | rh = abs(h0) * ls0001_1.hmxi; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2903:5: note: in expansion of macro 'ls0001_1' 2903 | ls0001_1.h = h0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2904:11: note: in expansion of macro 'ls0001_1' 2904 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2919:5: note: in expansion of macro 'ls0001_1' 2919 | ls0001_1.nslast = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2919:23: note: in expansion of macro 'ls0001_1' 2919 | ls0001_1.nslast = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2928:10: note: in expansion of macro 'ls0001_1' 2928 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2928:33: note: in expansion of macro 'ls0001_1' 2928 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2931:32: note: in expansion of macro 'ls0001_1' 2931 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2931:48: note: in expansion of macro 'ls0001_1' 2931 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:10: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:24: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2938:39: note: in expansion of macro 'ls0001_1' 2938 | tp = ls0001_1.tn - ls0001_1.hu * (ls0001_1.uround * 100. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2939:24: note: in expansion of macro 'ls0001_1' 2939 | if ((tp - *tout) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2942:10: note: in expansion of macro 'ls0001_1' 2942 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2942:33: note: in expansion of macro 'ls0001_1' 2942 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2945:10: note: in expansion of macro 'ls0001_1' 2945 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2949:10: note: in expansion of macro 'ls0001_1' 2949 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2949:33: note: in expansion of macro 'ls0001_1' 2949 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2952:27: note: in expansion of macro 'ls0001_1' 2952 | if ((tcrit - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2955:10: note: in expansion of macro 'ls0001_1' 2955 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2955:33: note: in expansion of macro 'ls0001_1' 2955 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2958:32: note: in expansion of macro 'ls0001_1' 2958 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2958:48: note: in expansion of macro 'ls0001_1' 2958 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2966:10: note: in expansion of macro 'ls0001_1' 2966 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2966:33: note: in expansion of macro 'ls0001_1' 2966 | if ((ls0001_1.tn - tcrit) * ls0001_1.h > 0.) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:15: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2970:34: note: in expansion of macro 'ls0001_1' 2970 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2971:19: note: in expansion of macro 'ls0001_1' 2971 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2971:53: note: in expansion of macro 'ls0001_1' 2971 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:13: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:27: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2979:41: note: in expansion of macro 'ls0001_1' 2979 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2980:27: note: in expansion of macro 'ls0001_1' 2980 | if ((tnext - tcrit) * ls0001_1.h <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:5: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:27: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2983:48: note: in expansion of macro 'ls0001_1' 2983 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2985:9: note: in expansion of macro 'ls0001_1' 2985 | ls0001_1.jstart = -2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3001:9: note: in expansion of macro 'ls0001_1' 3001 | if (ls0001_1.meth == lsa001_1.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:9: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:24: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3011:43: note: in expansion of macro 'ls0001_1' 3011 | if (ls0001_1.nst - ls0001_1.nslast >= ls0001_1.mxstep) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:13: note: in expansion of macro 'ls0001_1' 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:58: note: in expansion of macro 'ls0001_1' 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3015:19: note: in expansion of macro 'ls0001_1' 3015 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3016:11: note: in expansion of macro 'ls0001_1' 3016 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3018:23: note: in expansion of macro 'ls0001_1' 3018 | if (rwork[i + ls0001_1.lewt - 1] <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3022:19: note: in expansion of macro 'ls0001_1' 3022 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3022:55: note: in expansion of macro 'ls0001_1' 3022 | rwork[i + ls0001_1.lewt - 1] = 1. / rwork[i + ls0001_1.lewt - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:13: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:40: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:59: note: in expansion of macro 'ls0001_1' 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3026:19: note: in expansion of macro 'ls0001_1' 3026 | rwork[ls0001_1.lewt]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3031:9: note: in expansion of macro 'ls0001_1' 3031 | if (ls0001_1.nst == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:9: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:23: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3036:37: note: in expansion of macro 'ls0001_1' 3036 | if (ls0001_1.tn + ls0001_1.h != ls0001_1.tn) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3039:7: note: in expansion of macro 'ls0001_1' 3039 | ++ls0001_1.nhnil; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3040:9: note: in expansion of macro 'ls0001_1' 3040 | if (ls0001_1.nhnil > ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3040:26: note: in expansion of macro 'ls0001_1' 3040 | if (ls0001_1.nhnil > ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3050:57: note: in expansion of macro 'ls0001_1' 3050 | c__101, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3051:13: note: in expansion of macro 'ls0001_1' 3051 | ls0001_1.h, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3052:9: note: in expansion of macro 'ls0001_1' 3052 | if (ls0001_1.nhnil < ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3052:26: note: in expansion of macro 'ls0001_1' 3052 | if (ls0001_1.nhnil < ls0001_1.mxhnil) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3059:36: note: in expansion of macro 'ls0001_1' 3059 | c__102, &c__0, &c__1, &ls0001_1.mxhnil, &c__0, &c__0, &c_b136, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3068:35: note: in expansion of macro 'ls0001_1' 3068 | stoda_(&neq[1], &y[1], &rwork[ls0001_1.lyh], &ls0001_1.nyh, &rwork[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3068:51: note: in expansion of macro 'ls0001_1' 3068 | stoda_(&neq[1], &y[1], &rwork[ls0001_1.lyh], &ls0001_1.nyh, &rwork[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:13: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:35: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3069:58: note: in expansion of macro 'ls0001_1' 3069 | ls0001_1.lyh], &rwork[ls0001_1.lewt], &rwork[ls0001_1.lsavf], & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:19: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:43: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3070:65: note: in expansion of macro 'ls0001_1' 3070 | rwork[ls0001_1.lacor], &rwork[ls0001_1.lwm], &iwork[ls0001_1.liwm] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3072:15: note: in expansion of macro 'ls0001_1' 3072 | kgo = 1 - ls0001_1.kflag; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3091:5: note: in expansion of macro 'ls0001_1' 3091 | ls0001_1.init = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3092:9: note: in expansion of macro 'ls0001_1' 3092 | if (ls0001_1.meth == lsa001_1.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3095:20: note: in expansion of macro 'ls0001_1' 3095 | lsa001_1.tsw = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3096:5: note: in expansion of macro 'ls0001_1' 3096 | ls0001_1.maxord = lsa001_1.mxordn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3097:9: note: in expansion of macro 'ls0001_1' 3097 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3098:9: note: in expansion of macro 'ls0001_1' 3098 | ls0001_1.maxord = lsa001_1.mxords; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3100:9: note: in expansion of macro 'ls0001_1' 3100 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3101:15: note: in expansion of macro 'ls0001_1' 3101 | rwork[ls0001_1.lwm] = sqrt(ls0001_1.uround); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3101:36: note: in expansion of macro 'ls0001_1' 3101 | rwork[ls0001_1.lwm] = sqrt(ls0001_1.uround); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3105:5: note: in expansion of macro 'ls0001_1' 3105 | ls0001_1.jstart = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3109:9: note: in expansion of macro 'ls0001_1' 3109 | if (ls0001_1.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3114:9: note: in expansion of macro 'ls0001_1' 3114 | if (ls0001_1.meth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3120:44: note: in expansion of macro 'ls0001_1' 3120 | c__60, &c__107, &c__0, &c__1, &ls0001_1.nst, &c__0, &c__2, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3121:13: note: in expansion of macro 'ls0001_1' 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3121:27: note: in expansion of macro 'ls0001_1' 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3133:10: note: in expansion of macro 'ls0001_1' 3133 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3133:33: note: in expansion of macro 'ls0001_1' 3133 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3136:32: note: in expansion of macro 'ls0001_1' 3136 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3136:48: note: in expansion of macro 'ls0001_1' 3136 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3142:10: note: in expansion of macro 'ls0001_1' 3142 | if ((ls0001_1.tn - *tout) * ls0001_1.h >= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3142:33: note: in expansion of macro 'ls0001_1' 3142 | if ((ls0001_1.tn - *tout) * ls0001_1.h >= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3149:10: note: in expansion of macro 'ls0001_1' 3149 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3149:33: note: in expansion of macro 'ls0001_1' 3149 | if ((ls0001_1.tn - *tout) * ls0001_1.h < 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3152:32: note: in expansion of macro 'ls0001_1' 3152 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3152:48: note: in expansion of macro 'ls0001_1' 3152 | intdy_(tout, &c__0, &rwork[ls0001_1.lyh], &ls0001_1.nyh, &y[1], &iflag); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:15: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3156:34: note: in expansion of macro 'ls0001_1' 3156 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3157:19: note: in expansion of macro 'ls0001_1' 3157 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3157:53: note: in expansion of macro 'ls0001_1' 3157 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:13: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:27: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3162:41: note: in expansion of macro 'ls0001_1' 3162 | tnext = ls0001_1.tn + ls0001_1.h * (ls0001_1.uround * 4. + 1.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3163:27: note: in expansion of macro 'ls0001_1' 3163 | if ((tnext - tcrit) * ls0001_1.h <= 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:5: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:27: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3166:48: note: in expansion of macro 'ls0001_1' 3166 | ls0001_1.h = (tcrit - ls0001_1.tn) * (1. - ls0001_1.uround * 4.); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3167:5: note: in expansion of macro 'ls0001_1' 3167 | ls0001_1.jstart = -2; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:15: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3172:34: note: in expansion of macro 'ls0001_1' 3172 | hmx = abs(ls0001_1.tn) + abs(ls0001_1.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3173:19: note: in expansion of macro 'ls0001_1' 3173 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3173:53: note: in expansion of macro 'ls0001_1' 3173 | ihit = (d_1 = ls0001_1.tn - tcrit, abs(d_1)) <= ls0001_1.uround * 100. * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3187:11: note: in expansion of macro 'ls0001_1' 3187 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3190:26: note: in expansion of macro 'ls0001_1' 3190 | y[i] = rwork[i + ls0001_1.lyh - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3192:10: note: in expansion of macro 'ls0001_1' 3192 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3201:5: note: in expansion of macro 'ls0001_1' 3201 | ls0001_1.illin = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3202:17: note: in expansion of macro 'ls0001_1' 3202 | rwork[11] = ls0001_1.hu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3203:17: note: in expansion of macro 'ls0001_1' 3203 | rwork[12] = ls0001_1.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3204:17: note: in expansion of macro 'ls0001_1' 3204 | rwork[13] = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3206:17: note: in expansion of macro 'ls0001_1' 3206 | iwork[11] = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3207:17: note: in expansion of macro 'ls0001_1' 3207 | iwork[12] = ls0001_1.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3208:17: note: in expansion of macro 'ls0001_1' 3208 | iwork[13] = ls0001_1.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3209:17: note: in expansion of macro 'ls0001_1' 3209 | iwork[14] = ls0001_1.nqu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3210:17: note: in expansion of macro 'ls0001_1' 3210 | iwork[15] = ls0001_1.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3212:17: note: in expansion of macro 'ls0001_1' 3212 | iwork[20] = ls0001_1.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3216:7: note: in expansion of macro 'ls0001_1' 3216 | ++ls0001_1.ntrep; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3217:9: note: in expansion of macro 'ls0001_1' 3217 | if (ls0001_1.ntrep < 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3244:36: note: in expansion of macro 'ls0001_1' 3244 | c__201, &c__0, &c__1, &ls0001_1.mxstep, &c__0, &c__1, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3245:13: note: in expansion of macro 'ls0001_1' 3245 | ls0001_1.tn, &c_b136, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3251:18: note: in expansion of macro 'ls0001_1' 3251 | ewti = rwork[ls0001_1.lewt + i - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3253:54: note: in expansion of macro 'ls0001_1' 3253 | c__202, &c__0, &c__1, &i, &c__0, &c__2, &ls0001_1.tn, &ewti, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3264:57: note: in expansion of macro 'ls0001_1' 3264 | c__203, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, &tolsf, | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3276:57: note: in expansion of macro 'ls0001_1' 3276 | c__204, &c__0, &c__0, &c__0, &c__0, &c__2, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3277:13: note: in expansion of macro 'ls0001_1' 3277 | ls0001_1.h, 50L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3290:34: note: in expansion of macro 'ls0001_1' 3290 | c__0, &c__0, &c__2, &ls0001_1.tn, &ls0001_1.h, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3290:48: note: in expansion of macro 'ls0001_1' 3290 | c__0, &c__0, &c__2, &ls0001_1.tn, &ls0001_1.h, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3300:65: note: in expansion of macro 'ls0001_1' 3300 | c__60, &c__206, &c__0, &c__0, &c__0, &c__0, &c__1, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3311:65: note: in expansion of macro 'ls0001_1' 3311 | c__60, &c__207, &c__0, &c__0, &c__0, &c__0, &c__1, &ls0001_1.tn, & | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3320:11: note: in expansion of macro 'ls0001_1' 3320 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3322:33: note: in expansion of macro 'ls0001_1' 3322 | size = (d_1 = rwork[i + ls0001_1.lacor - 1] * rwork[i + ls0001_1.lewt | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3322:65: note: in expansion of macro 'ls0001_1' 3322 | size = (d_1 = rwork[i + ls0001_1.lacor - 1] * rwork[i + ls0001_1.lewt | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3336:11: note: in expansion of macro 'ls0001_1' 3336 | i_1 = ls0001_1.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3339:26: note: in expansion of macro 'ls0001_1' 3339 | y[i] = rwork[i + ls0001_1.lyh - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3341:10: note: in expansion of macro 'ls0001_1' 3341 | *t = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3342:5: note: in expansion of macro 'ls0001_1' 3342 | ls0001_1.illin = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3343:17: note: in expansion of macro 'ls0001_1' 3343 | rwork[11] = ls0001_1.hu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3344:17: note: in expansion of macro 'ls0001_1' 3344 | rwork[12] = ls0001_1.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3345:17: note: in expansion of macro 'ls0001_1' 3345 | rwork[13] = ls0001_1.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3347:17: note: in expansion of macro 'ls0001_1' 3347 | iwork[11] = ls0001_1.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3348:17: note: in expansion of macro 'ls0001_1' 3348 | iwork[12] = ls0001_1.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3349:17: note: in expansion of macro 'ls0001_1' 3349 | iwork[13] = ls0001_1.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3350:17: note: in expansion of macro 'ls0001_1' 3350 | iwork[14] = ls0001_1.nqu; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3351:17: note: in expansion of macro 'ls0001_1' 3351 | iwork[15] = ls0001_1.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3353:17: note: in expansion of macro 'ls0001_1' 3353 | iwork[20] = ls0001_1.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3383:34: note: in expansion of macro 'ls0001_1' 3383 | c__5, &c__0, &c__2, &ls0001_1.n, &neq[1], &c__0, &c_b136, &c_b136, | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3412:13: note: in expansion of macro 'ls0001_1' 3412 | ls0001_1.mxstep, &c__0, &c__0, &c_b136, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3416:13: note: in expansion of macro 'ls0001_1' 3416 | ls0001_1.mxhnil, &c__0, &c__0, &c_b136, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3430:34: note: in expansion of macro 'ls0001_1' 3430 | c__0, &c__0, &c__1, &ls0001_1.hmin, &c_b136, 30L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3451:18: note: in expansion of macro 'ls0001_1' 3451 | ewti = rwork[ls0001_1.lewt + i - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3467:13: note: in expansion of macro 'ls0001_1' 3467 | ls0001_1.tn, 60L); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3495:9: note: in expansion of macro 'ls0001_1' 3495 | if (ls0001_1.illin == 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3498:7: note: in expansion of macro 'ls0001_1' 3498 | ++ls0001_1.illin; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:1461:49: warning: variable 'lenrws' set but not used [-Wunused-but-set-variable] 1461 | static integer leniwc, lenrwc, lf0, lenrwn, lenrws; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:1461:41: warning: variable 'lenrwn' set but not used [-Wunused-but-set-variable] 1461 | static integer leniwc, lenrwc, lf0, lenrwn, lenrws; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'prja_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3597:7: note: in expansion of macro 'ls0001_2' 3597 | ++ls0001_2.nje; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3598:5: note: in expansion of macro 'ls0001_2' 3598 | ls0001_2.ierpj = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3599:5: note: in expansion of macro 'ls0001_2' 3599 | ls0001_2.jcur = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3600:11: note: in expansion of macro 'ls0001_2' 3600 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3600:24: note: in expansion of macro 'ls0001_2' 3600 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3601:18: note: in expansion of macro 'ls0001_2' 3601 | switch ((int)ls0001_2.miter) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3611:12: note: in expansion of macro 'ls0001_2' 3611 | lenp = ls0001_2.n * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3611:25: note: in expansion of macro 'ls0001_2' 3611 | lenp = ls0001_2.n * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:22: note: in expansion of macro 'ls0001_2' 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:65: note: in expansion of macro 'ls0001_2' 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3628:20: note: in expansion of macro 'ls0001_2' 3628 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:14: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:34: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3629:65: note: in expansion of macro 'ls0001_2' 3629 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3636:11: note: in expansion of macro 'ls0001_2' 3636 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3644:24: note: in expansion of macro 'ls0001_2' 3644 | (*f)(&neq[1], &ls0001_2.tn, &y[1], &ftem[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3645:15: note: in expansion of macro 'ls0001_2' 3645 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3651:15: note: in expansion of macro 'ls0001_2' 3651 | j1 += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:5: note: in expansion of macro 'ls0001_2' 3654 | ls0001_2.nfe += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:21: note: in expansion of macro 'ls0001_2' 3654 | ls0001_2.nfe += ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3658:31: note: in expansion of macro 'ls0001_2' 3658 | lsa001_2.pdnorm = fnorm_(&ls0001_2.n, &wm[3], &ewt[1]) / abs(hl0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3661:11: note: in expansion of macro 'ls0001_2' 3661 | np1 = ls0001_2.n + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3663:11: note: in expansion of macro 'ls0001_2' 3663 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3671:21: note: in expansion of macro 'ls0001_2' 3671 | dgefa_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3671:34: note: in expansion of macro 'ls0001_2' 3671 | dgefa_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3673:9: note: in expansion of macro 'ls0001_2' 3673 | ls0001_2.ierpj = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3688:21: note: in expansion of macro 'ls0001_2' 3688 | lenp = meband * ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3694:22: note: in expansion of macro 'ls0001_2' 3694 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &ml, &mu, &wm[ml3], &meband); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3708:21: note: in expansion of macro 'ls0001_2' 3708 | mba = min(mband,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3708:21: note: in expansion of macro 'ls0001_2' 3708 | mba = min(mband,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3712:20: note: in expansion of macro 'ls0001_2' 3712 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:14: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:34: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3713:65: note: in expansion of macro 'ls0001_2' 3713 | r0 = abs(ls0001_2.h) * 1e3 * ls0001_2.uround * (doublereal) ls0001_2.n * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3720:15: note: in expansion of macro 'ls0001_2' 3720 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3730:24: note: in expansion of macro 'ls0001_2' 3730 | (*f)(&neq[1], &ls0001_2.tn, &y[1], &ftem[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3731:15: note: in expansion of macro 'ls0001_2' 3731 | i_3 = ls0001_2.n; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3745:26: note: in expansion of macro 'ls0001_2' 3745 | i2 = min(i_4,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3745:26: note: in expansion of macro 'ls0001_2' 3745 | i2 = min(i_4,ls0001_2.n); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:5: note: in expansion of macro 'ls0001_2' 3756 | ls0001_2.nfe += mba; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3760:31: note: in expansion of macro 'ls0001_2' 3760 | lsa001_2.pdnorm = bnorm_(&ls0001_2.n, &wm[3], &meband, &ml, &mu, &ewt[1]) | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3765:11: note: in expansion of macro 'ls0001_2' 3765 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3773:30: note: in expansion of macro 'ls0001_2' 3773 | dgbfa_(&wm[3], &meband, &ls0001_2.n, &ml, &mu, &iwm[21], &ier); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3775:9: note: in expansion of macro 'ls0001_2' 3775 | ls0001_2.ierpj = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'solsy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3835:5: note: in expansion of macro 'ls0001_2' 3835 | ls0001_2.iersl = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3836:18: note: in expansion of macro 'ls0001_2' 3836 | switch ((int)ls0001_2.miter) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3844:21: note: in expansion of macro 'ls0001_2' 3844 | dgesl_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3844:34: note: in expansion of macro 'ls0001_2' 3844 | dgesl_(&wm[3], &ls0001_2.n, &ls0001_2.n, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3849:11: note: in expansion of macro 'ls0001_2' 3849 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3849:24: note: in expansion of macro 'ls0001_2' 3849 | hl0 = ls0001_2.h * ls0001_2.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3855:11: note: in expansion of macro 'ls0001_2' 3855 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3865:11: note: in expansion of macro 'ls0001_2' 3865 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3872:5: note: in expansion of macro 'ls0001_2' 3872 | ls0001_2.iersl = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3879:30: note: in expansion of macro 'ls0001_2' 3879 | dgbsl_(&wm[3], &meband, &ls0001_2.n, &ml, &mu, &iwm[21], &x[1], &c__0); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'stoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3958:5: note: in expansion of macro 'ls0001_3' 3958 | ls0001_3.kflag = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3959:12: note: in expansion of macro 'ls0001_3' 3959 | told = ls0001_3.tn; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3961:5: note: in expansion of macro 'ls0001_3' 3961 | ls0001_3.ierpj = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3962:5: note: in expansion of macro 'ls0001_3' 3962 | ls0001_3.iersl = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3963:5: note: in expansion of macro 'ls0001_3' 3963 | ls0001_3.jcur = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3964:5: note: in expansion of macro 'ls0001_3' 3964 | ls0001_3.icf = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3966:9: note: in expansion of macro 'ls0001_3' 3966 | if (ls0001_3.jstart > 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3969:9: note: in expansion of macro 'ls0001_3' 3969 | if (ls0001_3.jstart == -1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3972:9: note: in expansion of macro 'ls0001_3' 3972 | if (ls0001_3.jstart == -2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3986:5: note: in expansion of macro 'ls0001_3' 3986 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3986:21: note: in expansion of macro 'ls0001_3' 3986 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3987:5: note: in expansion of macro 'ls0001_3' 3987 | ls0001_3.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3988:5: note: in expansion of macro 'ls0001_3' 3988 | ls0001_3.l = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3989:5: note: in expansion of macro 'ls0001_3' 3989 | ls0001_3.ialth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3990:5: note: in expansion of macro 'ls0001_3' 3990 | ls0001_3.rmax = 1e4; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3991:5: note: in expansion of macro 'ls0001_3' 3991 | ls0001_3.rc = 0.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3992:5: note: in expansion of macro 'ls0001_3' 3992 | ls0001_3.el0 = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3993:5: note: in expansion of macro 'ls0001_3' 3993 | ls0001_3.crate = .7; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3994:5: note: in expansion of macro 'ls0001_3' 3994 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3994:21: note: in expansion of macro 'ls0001_3' 3994 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3995:5: note: in expansion of macro 'ls0001_3' 3995 | ls0001_3.nslp = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3996:5: note: in expansion of macro 'ls0001_3' 3996 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3996:21: note: in expansion of macro 'ls0001_3' 3996 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4005:19: note: in expansion of macro 'ls0001_3' 4005 | cfode_(&c__2, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4005:34: note: in expansion of macro 'ls0001_3' 4005 | cfode_(&c__2, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4008:31: note: in expansion of macro 'ls0001_3' 4008 | lsa001_3.cm2[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4008:59: note: in expansion of macro 'ls0001_3' 4008 | lsa001_3.cm2[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4011:19: note: in expansion of macro 'ls0001_3' 4011 | cfode_(&c__1, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4011:34: note: in expansion of macro 'ls0001_3' 4011 | cfode_(&c__1, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4014:31: note: in expansion of macro 'ls0001_3' 4014 | lsa001_3.cm1[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4014:59: note: in expansion of macro 'ls0001_3' 4014 | lsa001_3.cm1[i - 1] = ls0001_3.tesco[i * 3 - 2] * ls0001_3.elco[i + 1 | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4032:5: note: in expansion of macro 'ls0001_3' 4032 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4032:21: note: in expansion of macro 'ls0001_3' 4032 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4033:5: note: in expansion of macro 'ls0001_3' 4033 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4033:21: note: in expansion of macro 'ls0001_3' 4033 | ls0001_3.lmax = ls0001_3.maxord + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4034:9: note: in expansion of macro 'ls0001_3' 4034 | if (ls0001_3.ialth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4035:9: note: in expansion of macro 'ls0001_3' 4035 | ls0001_3.ialth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4037:9: note: in expansion of macro 'ls0001_3' 4037 | if (ls0001_3.meth == lsa001_3.mused) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:13: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:28: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4040:43: note: in expansion of macro 'ls0001_3' 4040 | cfode_(&ls0001_3.meth, ls0001_3.elco, ls0001_3.tesco); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4041:5: note: in expansion of macro 'ls0001_3' 4041 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4041:22: note: in expansion of macro 'ls0001_3' 4041 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4050:11: note: in expansion of macro 'ls0001_3' 4050 | i_1 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:9: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:30: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4053:48: note: in expansion of macro 'ls0001_3' 4053 | ls0001_3.el[i - 1] = ls0001_3.elco[i + ls0001_3.nq * 13 - 14]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4055:5: note: in expansion of macro 'ls0001_3' 4055 | ls0001_3.nqnyh = ls0001_3.nq * *nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4055:22: note: in expansion of macro 'ls0001_3' 4055 | ls0001_3.nqnyh = ls0001_3.nq * *nyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:5: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:19: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:33: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4056:50: note: in expansion of macro 'ls0001_3' 4056 | ls0001_3.rc = ls0001_3.rc * ls0001_3.el[0] / ls0001_3.el0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4057:5: note: in expansion of macro 'ls0001_3' 4057 | ls0001_3.el0 = ls0001_3.el[0]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4057:20: note: in expansion of macro 'ls0001_3' 4057 | ls0001_3.el0 = ls0001_3.el[0]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4058:5: note: in expansion of macro 'ls0001_3' 4058 | ls0001_3.conit = .5 / (doublereal) (ls0001_3.nq + 2); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4058:41: note: in expansion of macro 'ls0001_3' 4058 | ls0001_3.conit = .5 / (doublereal) (ls0001_3.nq + 2); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4073:9: note: in expansion of macro 'ls0001_3' 4073 | if (ls0001_3.h == ls0001_3.hold) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4073:23: note: in expansion of macro 'ls0001_3' 4073 | if (ls0001_3.h == ls0001_3.hold) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4076:10: note: in expansion of macro 'ls0001_3' 4076 | rh = ls0001_3.h / ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4076:23: note: in expansion of macro 'ls0001_3' 4076 | rh = ls0001_3.h / ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4077:5: note: in expansion of macro 'ls0001_3' 4077 | ls0001_3.h = ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4077:18: note: in expansion of macro 'ls0001_3' 4077 | ls0001_3.h = ls0001_3.hold; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:21: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4082:41: note: in expansion of macro 'ls0001_3' 4082 | d_1 = rh, d_2 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:27: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4085:17: note: in expansion of macro 'ls0001_3' 4085 | rh = min(rh,ls0001_3.rmax); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:39: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4085:17: note: in expansion of macro 'ls0001_3' 4085 | rh = min(rh,ls0001_3.rmax); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:25: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4087:39: note: in expansion of macro 'ls0001_3' 4087 | d_1 = 1., d_2 = abs(ls0001_3.h) * ls0001_3.hmxi * rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4097:9: note: in expansion of macro 'ls0001_3' 4097 | if (ls0001_3.meth == 2) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4102:15: note: in expansion of macro 'ls0001_3' 4102 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4104:34: note: in expansion of macro 'ls0001_3' 4104 | if (rh * pdh * 1.00001 < sm1[ls0001_3.nq - 1]) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4107:14: note: in expansion of macro 'ls0001_3' 4107 | rh = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4111:11: note: in expansion of macro 'ls0001_3' 4111 | i_1 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4114:15: note: in expansion of macro 'ls0001_3' 4114 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:5: note: in expansion of macro 'ls0001_3' 4120 | ls0001_3.h *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:5: note: in expansion of macro 'ls0001_3' 4121 | ls0001_3.rc *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4122:5: note: in expansion of macro 'ls0001_3' 4122 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4122:22: note: in expansion of macro 'ls0001_3' 4122 | ls0001_3.ialth = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4137:16: note: in expansion of macro 'ls0001_3' 4137 | if ((d_1 = ls0001_3.rc - 1., abs(d_1)) > ls0001_3.ccmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4137:46: note: in expansion of macro 'ls0001_3' 4137 | if ((d_1 = ls0001_3.rc - 1., abs(d_1)) > ls0001_3.ccmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4138:9: note: in expansion of macro 'ls0001_3' 4138 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4138:25: note: in expansion of macro 'ls0001_3' 4138 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:9: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:25: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4140:41: note: in expansion of macro 'ls0001_3' 4140 | if (ls0001_3.nst >= ls0001_3.nslp + ls0001_3.msbp) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4141:9: note: in expansion of macro 'ls0001_3' 4141 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4141:25: note: in expansion of macro 'ls0001_3' 4141 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:5: note: in expansion of macro 'ls0001_3' 4143 | ls0001_3.tn += ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:20: note: in expansion of macro 'ls0001_3' 4143 | ls0001_3.tn += ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4144:10: note: in expansion of macro 'ls0001_3' 4144 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4145:11: note: in expansion of macro 'ls0001_3' 4145 | i_2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4149:15: note: in expansion of macro 'ls0001_3' 4149 | i_1 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4156:22: note: in expansion of macro 'ls0001_3' 4156 | pnorm = vmnorm_(&ls0001_3.n, &yh1[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4170:11: note: in expansion of macro 'ls0001_3' 4170 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4175:20: note: in expansion of macro 'ls0001_3' 4175 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4176:7: note: in expansion of macro 'ls0001_3' 4176 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4177:9: note: in expansion of macro 'ls0001_3' 4177 | if (ls0001_3.ipup <= 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4189:5: note: in expansion of macro 'ls0001_3' 4189 | ls0001_3.ipup = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4190:5: note: in expansion of macro 'ls0001_3' 4190 | ls0001_3.rc = 1.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4191:5: note: in expansion of macro 'ls0001_3' 4191 | ls0001_3.nslp = ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4191:21: note: in expansion of macro 'ls0001_3' 4191 | ls0001_3.nslp = ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4192:5: note: in expansion of macro 'ls0001_3' 4192 | ls0001_3.crate = .7; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4193:9: note: in expansion of macro 'ls0001_3' 4193 | if (ls0001_3.ierpj != 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4197:11: note: in expansion of macro 'ls0001_3' 4197 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4203:9: note: in expansion of macro 'ls0001_3' 4203 | if (ls0001_3.miter != 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4212:11: note: in expansion of macro 'ls0001_3' 4212 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4214:19: note: in expansion of macro 'ls0001_3' 4214 | savf[i] = ls0001_3.h * savf[i] - yh[i + (yh_dim1 << 1)]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4218:20: note: in expansion of macro 'ls0001_3' 4218 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4219:11: note: in expansion of macro 'ls0001_3' 4219 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4221:34: note: in expansion of macro 'ls0001_3' 4221 | y[i] = yh[i + yh_dim1] + ls0001_3.el[0] * savf[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4234:11: note: in expansion of macro 'ls0001_3' 4234 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4237:16: note: in expansion of macro 'ls0001_3' 4237 | y[i] = ls0001_3.h * savf[i] - (yh[i + (yh_dim1 << 1)] + acor[i]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4240:9: note: in expansion of macro 'ls0001_3' 4240 | if (ls0001_3.iersl < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4243:9: note: in expansion of macro 'ls0001_3' 4243 | if (ls0001_3.iersl > 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4246:20: note: in expansion of macro 'ls0001_3' 4246 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4247:11: note: in expansion of macro 'ls0001_3' 4247 | i_2 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4251:34: note: in expansion of macro 'ls0001_3' 4251 | y[i] = yh[i + yh_dim1] + ls0001_3.el[0] * acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4268:31: note: in expansion of macro 'ls0001_3' 4268 | if (del <= pnorm * 100. * ls0001_3.uround) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4271:19: note: in expansion of macro 'ls0001_3' 4271 | if (m == 0 && ls0001_3.meth == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4283:11: note: in expansion of macro 'ls0001_3' 4283 | d_1 = ls0001_3.crate * .2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4284:5: note: in expansion of macro 'ls0001_3' 4284 | ls0001_3.crate = max(d_1,rm); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4287:21: note: in expansion of macro 'ls0001_3' 4287 | d_1 = 1., d_2 = ls0001_3.crate * 1.5; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4288:34: note: in expansion of macro 'ls0001_3' 4288 | dcon = del * min(d_1,d_2) / (ls0001_3.tesco[ls0001_3.nq * 3 - 2] * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4288:49: note: in expansion of macro 'ls0001_3' 4288 | dcon = del * min(d_1,d_2) / (ls0001_3.tesco[ls0001_3.nq * 3 - 2] * | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4289:13: note: in expansion of macro 'ls0001_3' 4289 | ls0001_3.conit); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4294:47: note: in expansion of macro 'ls0001_3' 4294 | d_2 = lsa001_3.pdest, d_3 = rate / (d_1 = ls0001_3.h * ls0001_3.el[0], | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4294:60: note: in expansion of macro 'ls0001_3' 4294 | d_2 = lsa001_3.pdest, d_3 = rate / (d_1 = ls0001_3.h * ls0001_3.el[0], | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4303:14: note: in expansion of macro 'ls0001_3' 4303 | if (m == ls0001_3.maxcor) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4310:20: note: in expansion of macro 'ls0001_3' 4310 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4311:7: note: in expansion of macro 'ls0001_3' 4311 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4323:9: note: in expansion of macro 'ls0001_3' 4323 | if (ls0001_3.miter == 0 || ls0001_3.jcur == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4323:32: note: in expansion of macro 'ls0001_3' 4323 | if (ls0001_3.miter == 0 || ls0001_3.jcur == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4326:5: note: in expansion of macro 'ls0001_3' 4326 | ls0001_3.icf = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4327:5: note: in expansion of macro 'ls0001_3' 4327 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4327:21: note: in expansion of macro 'ls0001_3' 4327 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4330:5: note: in expansion of macro 'ls0001_3' 4330 | ls0001_3.icf = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4332:5: note: in expansion of macro 'ls0001_3' 4332 | ls0001_3.rmax = 2.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4333:5: note: in expansion of macro 'ls0001_3' 4333 | ls0001_3.tn = told; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4334:10: note: in expansion of macro 'ls0001_3' 4334 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4335:11: note: in expansion of macro 'ls0001_3' 4335 | i_2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4339:15: note: in expansion of macro 'ls0001_3' 4339 | i_1 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4346:9: note: in expansion of macro 'ls0001_3' 4346 | if (ls0001_3.ierpj < 0 || ls0001_3.iersl < 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4346:31: note: in expansion of macro 'ls0001_3' 4346 | if (ls0001_3.ierpj < 0 || ls0001_3.iersl < 0) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:13: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4349:28: note: in expansion of macro 'ls0001_3' 4349 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4352:16: note: in expansion of macro 'ls0001_3' 4352 | if (ncf == ls0001_3.mxncf) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4356:5: note: in expansion of macro 'ls0001_3' 4356 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4356:21: note: in expansion of macro 'ls0001_3' 4356 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4368:5: note: in expansion of macro 'ls0001_3' 4368 | ls0001_3.jcur = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4370:21: note: in expansion of macro 'ls0001_3' 4370 | dsm = del / ls0001_3.tesco[ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4370:36: note: in expansion of macro 'ls0001_3' 4370 | dsm = del / ls0001_3.tesco[ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:24: note: in expansion of macro 'ls0001_3' 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:57: note: in expansion of macro 'ls0001_3' 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4374:17: note: in expansion of macro 'ls0001_3' 4374 | ls0001_3.nq * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4395:5: note: in expansion of macro 'ls0001_3' 4395 | ls0001_3.kflag = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4397:7: note: in expansion of macro 'ls0001_3' 4397 | ++ls0001_3.nst; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4398:5: note: in expansion of macro 'ls0001_3' 4398 | ls0001_3.hu = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4398:19: note: in expansion of macro 'ls0001_3' 4398 | ls0001_3.hu = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4399:5: note: in expansion of macro 'ls0001_3' 4399 | ls0001_3.nqu = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4399:20: note: in expansion of macro 'ls0001_3' 4399 | ls0001_3.nqu = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4400:22: note: in expansion of macro 'ls0001_3' 4400 | lsa001_3.mused = ls0001_3.meth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4401:11: note: in expansion of macro 'ls0001_3' 4401 | i_2 = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4403:15: note: in expansion of macro 'ls0001_3' 4403 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4406:36: note: in expansion of macro 'ls0001_3' 4406 | yh[i + j * yh_dim1] += ls0001_3.el[j - 1] * acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4413:9: note: in expansion of macro 'ls0001_3' 4413 | if (ls0001_3.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4438:9: note: in expansion of macro 'ls0001_3' 4438 | if (ls0001_3.nq > 5) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4441:30: note: in expansion of macro 'ls0001_3' 4441 | if (dsm > pnorm * 100. * ls0001_3.uround && lsa001_3.pdest != 0.) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:20: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4448:16: note: in expansion of macro 'ls0001_3' 4448 | nqm2 = min(ls0001_3.nq,lsa001_3.mxords); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:161:33: note: in definition of macro 'min' 161 | #define min(a,b) ((a) <= (b) ? (a) : (b)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4448:16: note: in expansion of macro 'ls0001_3' 4448 | nqm2 = min(ls0001_3.nq,lsa001_3.mxords); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4451:30: note: in expansion of macro 'ls0001_3' 4451 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4454:33: note: in expansion of macro 'ls0001_3' 4454 | pdh = lsa001_3.pdlast * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4456:21: note: in expansion of macro 'ls0001_3' 4456 | rh1it = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4459:9: note: in expansion of macro 'ls0001_3' 4459 | if (ls0001_3.nq <= lsa001_3.mxords) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4466:20: note: in expansion of macro 'ls0001_3' 4466 | dm2 = vmnorm_(&ls0001_3.n, &yh[lm2p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4471:31: note: in expansion of macro 'ls0001_3' 4471 | dm2 = dsm * (lsa001_3.cm1[ls0001_3.nq - 1] / lsa001_3.cm2[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4471:63: note: in expansion of macro 'ls0001_3' 4471 | dm2 = dsm * (lsa001_3.cm1[ls0001_3.nq - 1] / lsa001_3.cm2[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4474:12: note: in expansion of macro 'ls0001_3' 4474 | nqm2 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4484:5: note: in expansion of macro 'ls0001_3' 4484 | ls0001_3.meth = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4485:5: note: in expansion of macro 'ls0001_3' 4485 | ls0001_3.miter = lsa001_3.jtyp; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4487:5: note: in expansion of macro 'ls0001_3' 4487 | ls0001_3.nq = nqm2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4488:5: note: in expansion of macro 'ls0001_3' 4488 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4488:18: note: in expansion of macro 'ls0001_3' 4488 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4504:30: note: in expansion of macro 'ls0001_3' 4504 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4505:28: note: in expansion of macro 'ls0001_3' 4505 | if (lsa001_3.mxordn >= ls0001_3.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4512:20: note: in expansion of macro 'ls0001_3' 4512 | dm1 = vmnorm_(&ls0001_3.n, &yh[lm1p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4517:31: note: in expansion of macro 'ls0001_3' 4517 | dm1 = dsm * (lsa001_3.cm2[ls0001_3.nq - 1] / lsa001_3.cm1[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4517:63: note: in expansion of macro 'ls0001_3' 4517 | dm1 = dsm * (lsa001_3.cm2[ls0001_3.nq - 1] / lsa001_3.cm1[ls0001_3.nq - 1] | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4520:12: note: in expansion of macro 'ls0001_3' 4520 | nqm1 = ls0001_3.nq; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4524:33: note: in expansion of macro 'ls0001_3' 4524 | pdh = lsa001_3.pdnorm * abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4535:16: note: in expansion of macro 'ls0001_3' 4535 | if (dm1 <= ls0001_3.uround * 1e3 * pnorm) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4542:5: note: in expansion of macro 'ls0001_3' 4542 | ls0001_3.meth = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4543:5: note: in expansion of macro 'ls0001_3' 4543 | ls0001_3.miter = 0; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4545:5: note: in expansion of macro 'ls0001_3' 4545 | ls0001_3.nq = nqm1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4546:5: note: in expansion of macro 'ls0001_3' 4546 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4546:18: note: in expansion of macro 'ls0001_3' 4546 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4552:7: note: in expansion of macro 'ls0001_3' 4552 | --ls0001_3.ialth; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4553:9: note: in expansion of macro 'ls0001_3' 4553 | if (ls0001_3.ialth == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4556:9: note: in expansion of macro 'ls0001_3' 4556 | if (ls0001_3.ialth > 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4559:9: note: in expansion of macro 'ls0001_3' 4559 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4559:23: note: in expansion of macro 'ls0001_3' 4559 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4562:11: note: in expansion of macro 'ls0001_3' 4562 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4565:16: note: in expansion of macro 'ls0001_3' 4565 | yh[i + ls0001_3.lmax * yh_dim1] = acor[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4578:7: note: in expansion of macro 'ls0001_3' 4578 | --ls0001_3.kflag; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4579:5: note: in expansion of macro 'ls0001_3' 4579 | ls0001_3.tn = told; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4580:10: note: in expansion of macro 'ls0001_3' 4580 | i1 = ls0001_3.nqnyh + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4581:11: note: in expansion of macro 'ls0001_3' 4581 | i_1 = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4585:15: note: in expansion of macro 'ls0001_3' 4585 | i_2 = ls0001_3.nqnyh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4592:5: note: in expansion of macro 'ls0001_3' 4592 | ls0001_3.rmax = 2.; | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:13: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4593:28: note: in expansion of macro 'ls0001_3' 4593 | if (abs(ls0001_3.h) <= ls0001_3.hmin * 1.00001) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4596:9: note: in expansion of macro 'ls0001_3' 4596 | if (ls0001_3.kflag <= -3) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4615:9: note: in expansion of macro 'ls0001_3' 4615 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4615:23: note: in expansion of macro 'ls0001_3' 4615 | if (ls0001_3.l == ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4618:11: note: in expansion of macro 'ls0001_3' 4618 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4621:36: note: in expansion of macro 'ls0001_3' 4621 | savf[i] = acor[i] - yh[i + ls0001_3.lmax * yh_dim1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:20: note: in expansion of macro 'ls0001_3' 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:53: note: in expansion of macro 'ls0001_3' 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4624:13: note: in expansion of macro 'ls0001_3' 4624 | ls0001_3.nq * 3 - 1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4625:31: note: in expansion of macro 'ls0001_3' 4625 | exup = 1. / (doublereal) (ls0001_3.l + 1); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4628:30: note: in expansion of macro 'ls0001_3' 4628 | exsm = 1. / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4631:9: note: in expansion of macro 'ls0001_3' 4631 | if (ls0001_3.nq == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:20: note: in expansion of macro 'ls0001_3' 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:36: note: in expansion of macro 'ls0001_3' 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4635:13: note: in expansion of macro 'ls0001_3' 4635 | ls0001_3.tesco[ls0001_3.nq * 3 - 3]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4635:28: note: in expansion of macro 'ls0001_3' 4635 | ls0001_3.tesco[ls0001_3.nq * 3 - 3]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4636:30: note: in expansion of macro 'ls0001_3' 4636 | exdn = 1. / (doublereal) ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4641:9: note: in expansion of macro 'ls0001_3' 4641 | if (ls0001_3.meth == 2) { | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4645:15: note: in expansion of macro 'ls0001_3' 4645 | d_1 = abs(ls0001_3.h) * lsa001_3.pdlast; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4647:9: note: in expansion of macro 'ls0001_3' 4647 | if (ls0001_3.l < ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4647:22: note: in expansion of macro 'ls0001_3' 4647 | if (ls0001_3.l < ls0001_3.lmax) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4649:31: note: in expansion of macro 'ls0001_3' 4649 | d_1 = rhup, d_2 = sm1[ls0001_3.l - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4653:27: note: in expansion of macro 'ls0001_3' 4653 | d_1 = rhsm, d_2 = sm1[ls0001_3.nq - 1] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4655:9: note: in expansion of macro 'ls0001_3' 4655 | if (ls0001_3.nq > 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4657:31: note: in expansion of macro 'ls0001_3' 4657 | d_1 = rhdn, d_2 = sm1[ls0001_3.nq - 2] / pdh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4673:12: note: in expansion of macro 'ls0001_3' 4673 | newq = ls0001_3.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4677:12: note: in expansion of macro 'ls0001_3' 4677 | newq = ls0001_3.nq - 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4679:9: note: in expansion of macro 'ls0001_3' 4679 | if (ls0001_3.kflag < 0 && rh > 1.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4684:12: note: in expansion of macro 'ls0001_3' 4684 | newq = ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:9: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:21: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4689:52: note: in expansion of macro 'ls0001_3' 4689 | r = ls0001_3.el[ls0001_3.l - 1] / (doublereal) ls0001_3.l; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4690:11: note: in expansion of macro 'ls0001_3' 4690 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4697:5: note: in expansion of macro 'ls0001_3' 4697 | ls0001_3.ialth = 3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4702:9: note: in expansion of macro 'ls0001_3' 4702 | if (ls0001_3.meth == 2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4709:9: note: in expansion of macro 'ls0001_3' 4709 | if (ls0001_3.kflag == 0 && rh < 1.1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4713:9: note: in expansion of macro 'ls0001_3' 4713 | if (ls0001_3.kflag <= -2) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4724:17: note: in expansion of macro 'ls0001_3' 4724 | if (newq == ls0001_3.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4728:5: note: in expansion of macro 'ls0001_3' 4728 | ls0001_3.nq = newq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4729:5: note: in expansion of macro 'ls0001_3' 4729 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4729:18: note: in expansion of macro 'ls0001_3' 4729 | ls0001_3.l = ls0001_3.nq + 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4744:9: note: in expansion of macro 'ls0001_3' 4744 | if (ls0001_3.kflag == -10) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:11: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:18: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:29: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2c.h:159:36: note: in definition of macro 'abs' 159 | #define abs(x) ((x) >= 0 ? (x) : -(x)) | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4749:31: note: in expansion of macro 'ls0001_3' 4749 | d_1 = ls0001_3.hmin / abs(ls0001_3.h); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4751:5: note: in expansion of macro 'ls0001_3' 4751 | ls0001_3.h *= rh; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4752:11: note: in expansion of macro 'ls0001_3' 4752 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4757:20: note: in expansion of macro 'ls0001_3' 4757 | (*f)(&neq[1], &ls0001_3.tn, &y[1], &savf[1]); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4758:7: note: in expansion of macro 'ls0001_3' 4758 | ++ls0001_3.nfe; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4759:11: note: in expansion of macro 'ls0001_3' 4759 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4762:34: note: in expansion of macro 'ls0001_3' 4762 | yh[i + (yh_dim1 << 1)] = ls0001_3.h * savf[i]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4764:5: note: in expansion of macro 'ls0001_3' 4764 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4764:21: note: in expansion of macro 'ls0001_3' 4764 | ls0001_3.ipup = ls0001_3.miter; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4765:5: note: in expansion of macro 'ls0001_3' 4765 | ls0001_3.ialth = 5; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4766:9: note: in expansion of macro 'ls0001_3' 4766 | if (ls0001_3.nq == 1) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4769:5: note: in expansion of macro 'ls0001_3' 4769 | ls0001_3.nq = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4770:5: note: in expansion of macro 'ls0001_3' 4770 | ls0001_3.l = 2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4780:5: note: in expansion of macro 'ls0001_3' 4780 | ls0001_3.kflag = -1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4783:5: note: in expansion of macro 'ls0001_3' 4783 | ls0001_3.kflag = -2; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4786:5: note: in expansion of macro 'ls0001_3' 4786 | ls0001_3.kflag = -3; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4789:5: note: in expansion of macro 'ls0001_3' 4789 | ls0001_3.rmax = 10.; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4791:14: note: in expansion of macro 'ls0001_3' 4791 | r = 1. / ls0001_3.tesco[ls0001_3.nqu * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4791:29: note: in expansion of macro 'ls0001_3' 4791 | r = 1. / ls0001_3.tesco[ls0001_3.nqu * 3 - 2]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4792:11: note: in expansion of macro 'ls0001_3' 4792 | i_1 = ls0001_3.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4798:5: note: in expansion of macro 'ls0001_3' 4798 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4798:21: note: in expansion of macro 'ls0001_3' 4798 | ls0001_3.hold = ls0001_3.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4799:5: note: in expansion of macro 'ls0001_3' 4799 | ls0001_3.jstart = 1; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'xerrwv_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:89:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 89 | #define eh0001_1 (*(struct eh0001_1_ *) &eh0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4964:9: note: in expansion of macro 'eh0001_1' 4964 | if (eh0001_1.mesflg == 0) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:89:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 89 | #define eh0001_1 (*(struct eh0001_1_ *) &eh0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4969:11: note: in expansion of macro 'eh0001_1' 4969 | lun = eh0001_1.lunit; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'intdy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5463:24: note: in expansion of macro 'ls0001_2' 5463 | if (*k < 0 || *k > ls0001_2.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:10: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:24: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:38: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5466:64: note: in expansion of macro 'ls0001_2' 5466 | tp = ls0001_2.tn - ls0001_2.hu - ls0001_2.uround * 100. * (ls0001_2.tn + | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5467:13: note: in expansion of macro 'ls0001_2' 5467 | ls0001_2.hu); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5468:27: note: in expansion of macro 'ls0001_2' 5468 | if ((*t - tp) * (*t - ls0001_2.tn) > 0.) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5472:15: note: in expansion of macro 'ls0001_2' 5472 | s = (*t - ls0001_2.tn) / ls0001_2.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5472:30: note: in expansion of macro 'ls0001_2' 5472 | s = (*t - ls0001_2.tn) / ls0001_2.h; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5477:11: note: in expansion of macro 'ls0001_2' 5477 | jj1 = ls0001_2.l - *k; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5478:11: note: in expansion of macro 'ls0001_2' 5478 | i_1 = ls0001_2.nq; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5485:11: note: in expansion of macro 'ls0001_2' 5485 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5488:29: note: in expansion of macro 'ls0001_2' 5488 | dky[i] = c * yh[i + ls0001_2.l * yh_dim1]; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5490:15: note: in expansion of macro 'ls0001_2' 5490 | if (*k == ls0001_2.nq) { | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5493:11: note: in expansion of macro 'ls0001_2' 5493 | jb2 = ls0001_2.nq - *k; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5496:13: note: in expansion of macro 'ls0001_2' 5496 | j = ls0001_2.nq - jb; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5510:15: note: in expansion of macro 'ls0001_2' 5510 | i_2 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5522:17: note: in expansion of macro 'ls0001_2' 5522 | r = pow_di(&ls0001_2.h, &i_1); | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5523:11: note: in expansion of macro 'ls0001_2' 5523 | i_1 = ls0001_2.n; | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:20: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:5540:13: note: in expansion of macro 'ls0001_2' 5540 | ls0001_2.tn, 0L); | ^~~~~~~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:22:13: warning: 'RCSid' defined but not used [-Wunused-variable] 22 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'solsy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:15:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 15 | #define dgbsl_ csoda_dgbsl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:17:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 17 | #define dgesl_ csoda_dgesl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:17:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 17 | #define dgesl_ csoda_dgesl | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'stoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4143 | ls0001_3.tn += ls0001_3.h; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4143:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4143 | ls0001_3.tn += ls0001_3.h; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4156:13: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4156 | pnorm = vmnorm_(&ls0001_3.n, &yh1[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4218:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4218 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4246:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4246 | del = vmnorm_(&ls0001_3.n, &y[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4373:15: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4373 | dsm = vmnorm_(&ls0001_3.n, &acor[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4466:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4466 | dm2 = vmnorm_(&ls0001_3.n, &yh[lm2p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4512:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4512 | dm1 = vmnorm_(&ls0001_3.n, &yh[lm1p1 * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4623:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4623 | dup = vmnorm_(&ls0001_3.n, &savf[1], &ewt[1]) / ls0001_3.tesco[ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4751:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4751 | ls0001_3.h *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4634:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 4634 | ddn = vmnorm_(&ls0001_3.n, &yh[ls0001_3.l * yh_dim1 + 1], &ewt[1]) / | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4120 | ls0001_3.h *= rh; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4120:16: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4120 | ls0001_3.h *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4121 | ls0001_3.rc *= rh; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4121:17: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 4121 | ls0001_3.rc *= rh; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:63:19: warning: array subscript 'struct ls0001_3_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 63 | #define ls0001_3 (*(struct ls0001_3_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'prja_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3628:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3628 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3654 | ls0001_2.nfe += ls0001_2.n; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3654:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3654 | ls0001_2.nfe += ls0001_2.n; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3712:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3712 | fac = vmnorm_(&ls0001_2.n, &savf[1], &ewt[1]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3756 | ls0001_2.nfe += mba; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3756:18: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 3756 | ls0001_2.nfe += mba; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3760:23: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3760 | lsa001_2.pdnorm = bnorm_(&ls0001_2.n, &wm[3], &meband, &ml, &mu, &ewt[1]) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:14:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 14 | #define dgbfa_ csoda_dgbfa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3617:6: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3617 | (*jac)(&neq[1], &ls0001_2.tn, &y[1], &c__0, &c__0, &wm[3], &ls0001_2.n); | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3658:23: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3658 | lsa001_2.pdnorm = fnorm_(&ls0001_2.n, &wm[3], &ewt[1]) / abs(hl0); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:16:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 16 | #define dgefa_ csoda_dgefa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:16:16: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 16 | #define dgefa_ csoda_dgefa | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'intdy_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:62:19: warning: array subscript 'struct ls0001_2_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 62 | #define ls0001_2 (*(struct ls0001_2_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c: In function 'lsoda_': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3382:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3382 | xerrwv_("lsoda-- istate = 3 and neq increased (i1 to i2) ", &c__50, & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3383 | c__5, &c__0, &c__2, &ls0001_1.n, &neq[1], &c__0, &c_b136, &c_b136, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3384 | 50L); | ~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2811:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 2811 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2812 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:2886:11: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 2886 | sum = vmnorm_(&ls0001_1.n, &rwork[lf0], &rwork[ls0001_1.lewt]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3025:31: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3025 | tolsf = ls0001_1.uround * vmnorm_(&ls0001_1.n, &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3026 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3119:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3119 | xerrwv_(" at t = r1, tentative step size h = r2, step nst = i1 ", & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3120 | c__60, &c__107, &c__0, &c__1, &ls0001_1.nst, &c__0, &c__2, & | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3121 | ls0001_1.tn, &ls0001_1.h, 60L); | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:31: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:3014:5: warning: array subscript 1 is outside array bounds of 'struct [1]' [-Warray-bounds] 3014 | ewset_(&ls0001_1.n, itol, &rtol[1], &atol[1], &rwork[ls0001_1.lyh], & | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3015 | rwork[ls0001_1.lewt]); | ~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:61:19: warning: array subscript 'struct ls0001_1_[0]' is partly outside array bounds of 'struct [1]' [-Warray-bounds] 61 | #define ls0001_1 (*(struct ls0001_1_ *) &ls0001_) | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:100:7: note: while referencing 'ls0001_' 100 | } ls0001_ = { {0}, 0, {0}, 0, {0}, 0. }; | ^~~~~~~ [ 71%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c: In function 'clsoda': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:52:20: warning: unused variable 'iout' [-Wunused-variable] 52 | static integer iout; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:44:13: warning: unused variable 'i' [-Wunused-variable] 44 | int i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:52:20: warning: 'iout' defined but not used [-Wunused-variable] 52 | static integer iout; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 71%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/deflate.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/deflate.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 72%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c: In function 'derivimplicit': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c:22:9: warning: unused variable 'i' [-Wunused-variable] 22 | int i; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/dimplic.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 72%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/scoperf.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/scoperf.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 72%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/euler.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/euler.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 72%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/expfit.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/expfit.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 72%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/exprand.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/exprand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 73%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2cmisc.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/f2cmisc.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 73%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/factoria.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/factoria.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 73%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:44:16: warning: 'laststep' defined but not used [-Wunused-variable] 44 | static Spline *laststep = SP0;/* the step list used on previous call */ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:42:16: warning: 'steplist' defined but not used [-Wunused-variable] 42 | static Spline *steplist = SP0; /* list of steps */ | ^~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/force.c:17:13: warning: 'RCSid' defined but not used [-Wunused-variable] 17 | static char RCSid[] = | ^~~~~ [ 73%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gauss.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gauss.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 73%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gear.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/gear.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/getmem.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/getmem.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/harmonic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/harmonic.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/heun.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/heun.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/hyperbol.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/hyperbol.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 74%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/invert.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/invert.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/lag.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/lag.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/legendre.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/legendre.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/normrand.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/normrand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 75%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perpulse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perpulse.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perstep.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/perstep.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisrand.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisrand.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisson.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/poisson.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 76%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/praxis.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/praxis.c:123:16: warning: 'c__10' defined but not used [-Wunused-variable] 123 | static integer c__10 = 10; | ^~~~~ [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/pulse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/pulse.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/quad.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/quad.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ramp.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ramp.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revhyper.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revhyper.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 77%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsawto.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsawto.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsigmo.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/revsigmo.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/romberg.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/romberg.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/runge.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/runge.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sawtooth.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sawtooth.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 78%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/schedule.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/schedule.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/seidel.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/seidel.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sigmoid.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sigmoid.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sigmoid.c,v 1.2 1997/08/30 14:32:20 hines Exp" ; | ^~~~~ [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simeq.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simeq.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = "simeq.c,v 1.3 1999/01/04 12:46:51 hines Exp" ; | ^~~~~ [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simplex.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/simplex.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 79%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c: In function '_cvode_sparse': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:247:16: warning: unused variable 'j' [-Wunused-variable] 247 | int i, j, ierr; | ^ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:76:25: warning: 'spar_prmat' defined but not used [-Wunused-function] 76 | # define prmat spar_prmat | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:342:13: note: in expansion of macro 'prmat' 342 | static void prmat() | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sparse.c,v 1.7 1998/03/12 13:17:17 hines Exp"; | ^~~~~ [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'create_sparseobj': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:142:10: warning: unused variable 'j' [-Wunused-variable] 142 | int i, j, k; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function '_vector_sparse': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:287:7: warning: unused variable 'zero' [-Wunused-variable] 287 | int zero = 0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'initeqn': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:565:11: warning: unused variable 'val' [-Wunused-variable] 565 | double *val; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c: In function 'vec_spar_getelm': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:626:13: warning: unused variable '_ix' [-Wunused-variable] 626 | int _ix = 0; | ^~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:41:25: warning: 'vec_spar_prmat' defined but not used [-Wunused-function] 41 | # define prmat vec_spar_prmat | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:532:13: note: in expansion of macro 'prmat' 532 | static void prmat() | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:126:15: warning: 'd' defined but not used [-Wunused-variable] 126 | static double d; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/vsparse.c:14:13: warning: 'RCSid' defined but not used [-Wunused-variable] 14 | static char RCSid[] = "vsparse.c,v 1.5 1999/01/04 12:46:53 hines Exp"; | ^~~~~ [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/spline.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/spline.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/squarewa.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/squarewa.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c: In function '_ss_derivimplicit': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic.c:90:18: warning: unused variable 'i' [-Wunused-variable] 90 | int err, i; | ^ [ 80%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/step.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/step.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/threshol.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/threshol.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/tridiag.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/tridiag.c:12:13: warning: 'RCSid' defined but not used [-Wunused-variable] 12 | static char RCSid[] = | ^~~~~ [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c: In function '_cvode_sparse_thread': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:225:16: warning: unused variable 'j' [-Wunused-variable] 225 | int i, j, ierr; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c: In function 'free_elm': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:368:19: warning: unused variable 'elnext' [-Wunused-variable] 368 | Elm *el, *elnext; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:368:14: warning: unused variable 'el' [-Wunused-variable] 368 | Elm *el, *elnext; | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:305:13: warning: 'prmat' defined but not used [-Wunused-function] 305 | static void prmat(SparseObj* so) { | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/sparse_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = "sparse.c,v 1.7 1998/03/12 13:17:17 hines Exp"; | ^~~~~ [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 81%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c:2: /builddir/build/BUILD/nrn-7.8.1/src/scopmath/newton_struct.h:29:13: warning: 'nrn_buildjacobian_thread' declared 'static' but never defined [-Wunused-function] 29 | static void nrn_buildjacobian_thread(NewtonSpace* ns, | ^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/crout_thread.c:13:13: warning: 'RCSid' defined but not used [-Wunused-variable] 13 | static char RCSid[] = | ^~~~~ [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DHOC=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -I/builddir/build/BUILD/nrn-7.8.1/src/scopmath -o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c: In function '_ss_derivimplicit_thread': /builddir/build/BUILD/nrn-7.8.1/src/scopmath/ssimplic_thread.c:53:18: warning: unused variable 'i' [-Wunused-variable] 53 | int err, i; | ^ [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:80:13: warning: 'Translate' declared 'static' but never defined [-Wunused-function] 80 | static void Translate(); | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:82:13: warning: 'ExpandTranslationArrays' declared 'static' but never defined [-Wunused-function] 82 | static void ExpandTranslationArrays(); | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ [ 82%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c: In function 'spPartition': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:606:25: warning: variable 'DoCmplxDirect' set but not used [-Wunused-but-set-variable] 606 | BOOLEAN *DoRealDirect, *DoCmplxDirect; | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:77:12: warning: 'FactorComplexMatrix' declared 'static' but never defined [-Wunused-function] 77 | static int FactorComplexMatrix(); | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c: In function 'spPrint': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:154:23: warning: variable 'pImagElements' set but not used [-Wunused-but-set-variable] 154 | ElementPtr pElement, pImagElements[PRINTER_WIDTH/10+1]; | ^~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c: In function 'spFileVector': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:572:25: warning: unused variable 'Err' [-Wunused-variable] 572 | register int I, Size, Err; | ^~~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:67:13: warning: 'SolveComplexMatrix' declared 'static' but never defined [-Wunused-function] 67 | static void SolveComplexMatrix(); | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:68:13: warning: 'SolveComplexTransposedMatrix' declared 'static' but never defined [-Wunused-function] 68 | static void SolveComplexTransposedMatrix(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: In function 'spDeterminant': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:997:22: warning: unused variable 'cDeterminant' [-Wunused-variable] 997 | ComplexNumber Pivot, cDeterminant; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:997:15: warning: unused variable 'Pivot' [-Wunused-variable] 997 | ComplexNumber Pivot, cDeterminant; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:22: warning: unused variable 'ni' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:18: warning: unused variable 'nr' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:996:12: warning: unused variable 'Norm' [-Wunused-variable] 996 | RealNumber Norm, nr, ni; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: In function 'spLargestElement': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:1982:15: warning: unused variable 'cPivot' [-Wunused-variable] 1982 | ComplexNumber cPivot; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:85:13: warning: 'ScaleComplexMatrix' declared 'static' but never defined [-Wunused-function] 85 | static void ScaleComplexMatrix(); | ^~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:86:13: warning: 'ComplexMatrixMultiply' declared 'static' but never defined [-Wunused-function] 86 | static void ComplexMatrixMultiply(); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:87:13: warning: 'ComplexTransposedMatrixMultiply' declared 'static' but never defined [-Wunused-function] 87 | static void ComplexTransposedMatrixMultiply(); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:88:19: warning: 'ComplexCondition' declared 'static' but never defined [-Wunused-function] 88 | static RealNumber ComplexCondition(); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspalloc.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspalloc.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spalloc.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ [ 83%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspbuild.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspbuild.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spbuild.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspfactor.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspfactor.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:53:13: warning: 'RCSid' defined but not used [-Wunused-variable] 53 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spfactor.c:51:13: warning: 'copyright' defined but not used [-Wunused-variable] 51 | static char copyright[] = | ^~~~~~~~~ [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspoutput.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspoutput.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spoutput.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c: In function 'SolveComplexMatrix': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:290:25: warning: unused variable 'ExtVector' [-Wunused-variable] 290 | register ComplexVector ExtVector; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c: In function 'SolveComplexTransposedMatrix': /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:608:26: warning: unused variable 'ExtVector' [-Wunused-variable] 608 | register ComplexVector ExtVector; | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/cspsolve.c:2: At top level: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:43:13: warning: 'RCSid' defined but not used [-Wunused-variable] 43 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:41:13: warning: 'copyright' defined but not used [-Wunused-variable] 41 | static char copyright[] = | ^~~~~~~~~ [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sparse13/csputils.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/sparse13/csputils.c:2: /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:55:13: warning: 'RCSid' defined but not used [-Wunused-variable] 55 | static char RCSid[] = | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sparse13/sputils.c:53:13: warning: 'copyright' defined but not used [-Wunused-variable] 53 | static char copyright[] = | ^~~~~~~~~ [ 84%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvband.c [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvbandpre.c [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvbbdpre.c [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvdense.c [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvdiag.c [ 85%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c: In function 'CVodeF': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c:326:21: warning: variable 'istop' set but not used [-Wunused-but-set-variable] 326 | booleantype iret, istop; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c: In function 'CVBBDPrecReInitB': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodea.c:1125:9: warning: variable 'cvode_mem' set but not used [-Wunused-but-set-variable] 1125 | void *cvode_mem; | ^~~~~~~~~ [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVode': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:1371:18: warning: variable 'wrk2' set but not used [-Wunused-but-set-variable] 1371 | N_Vector wrk1, wrk2; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:1371:12: warning: variable 'wrk1' set but not used [-Wunused-but-set-variable] 1371 | N_Vector wrk1, wrk2; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVStgrNlsNewton': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:4693:15: warning: variable 'callSetup' set but not used [-Wunused-but-set-variable] 4693 | booleantype callSetup; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVStgr1NlsNewton': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:4966:15: warning: variable 'callSetup' set but not used [-Wunused-but-set-variable] 4966 | booleantype callSetup; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c: In function 'CVsldet': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:5622:36: warning: variable 'rd3b' set but not used [-Wunused-but-set-variable] 5622 | realtype rd2a, rd2b, rd2c, rd3a, rd3b, cest1, corr1; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodes.c:5620:12: warning: variable 'small' set but not used [-Wunused-but-set-variable] 5620 | realtype small, tem, sqmax, saqk, qp, s, sqmaxk, saqj, sqmin; | ^~~~~ [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c: In function 'CVodeSetMinStep': /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvodesio.c:266:12: warning: variable 'hmax' set but not used [-Wunused-but-set-variable] 266 | realtype hmax; | ^~~~ [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes/cvspgmr.c [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c: In function 'IDABand': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaband.c:123:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 123 | int flag; | ^~~~ [ 86%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idabbdpre.c [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c: In function 'IDAStopTest2': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c:1343:7: warning: variable 'ier' set but not used [-Wunused-but-set-variable] 1343 | int ier; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c: In function 'IDAnls': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/ida.c:1631:15: warning: variable 'ier' set but not used [-Wunused-but-set-variable] 1631 | int retval, ier; | ^~~ [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c: In function 'IDADense': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idadense.c:115:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 115 | int flag; | ^~~~ [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaic.c [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaio.c [ 87%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c: In function 'IDASpgmr': /builddir/build/BUILD/nrn-7.8.1/src/sundials/ida/idaspgmr.c:157:7: warning: variable 'flag' set but not used [-Wunused-but-set-variable] 157 | int flag, maxl1; | ^~~~ [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/band.c [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/dense.c [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/iterative.c [ 88%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector.c [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_serial.c [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/smalldense.c [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/spgmr.c [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/sundialsmath.c [ 89%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c: In function 'nrnmpi_subworld_size': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c:264:13: warning: unused variable 'nb' [-Wunused-variable] 264 | int nb = nw / n; /* nrnmpi_numprocs_bbs */ | ^~ At top level: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi.c:55:12: warning: 'nrnmpi_is_setup_' defined but not used [-Wunused-variable] 55 | static int nrnmpi_is_setup_; | ^~~~~~~~~~~~~~~~ [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_enddata': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:208:29: warning: variable 'oldsize' set but not used [-Wunused-but-set-variable] 208 | int p, type, isize, oldsize; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'pack': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:234:27: warning: variable 'oldsize' set but not used [-Wunused-but-set-variable] 234 | int dsize, isize, oldsize; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_bbssendrecv': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:354:20: warning: unused variable 'status' [-Wunused-variable] 354 | MPI_Status status; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:353:13: warning: unused variable 'msgtag' [-Wunused-variable] 353 | int msgtag; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c: In function 'nrnmpi_probe': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/bbsmpipack.c:380:13: warning: unused variable 'flag' [-Wunused-variable] 380 | int flag = 0; | ^~~~ [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'nrnmpi_spike_exchange': /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:96:26: warning: unused variable 'n1' [-Wunused-variable] 96 | int i, n, novfl, n1; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:96:19: warning: unused variable 'novfl' [-Wunused-variable] 96 | int i, n, novfl, n1; | ^~~~~ In function 'make_spike_type', inlined from 'nrnmpi_spike_initialize' at /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:59:2: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:45:9: warning: 's' may be used uninitialized [-Wmaybe-uninitialized] 45 | MPI_Get_address(&s, &addresses[0]); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnmpi_impl.h:4, from /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:19: /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c: In function 'nrnmpi_spike_initialize': /usr/include/openmpi-x86_64/mpi.h:1565:20: note: by argument 1 of type 'const void *' to 'MPI_Get_address' declared here 1565 | OMPI_DECLSPEC int MPI_Get_address(const void *location, MPI_Aint *address); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/mpispike.c:34:22: note: 's' declared here 34 | NRNMPI_Spike s; | ^ [ 90%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnmpi/nrnrt.c [ 91%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -DNRNCMAKE -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp: In function 'wchar_t* mywstrdup(char*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp:194:7: warning: unused variable 'count' [-Wunused-variable] 194 | int count = mbstowcs(ws, s, sz + 1); | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp: In function 'void nrnpython_start(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.cpp:241:22: warning: unused variable 'gilsav' [-Wunused-variable] 241 | PyGILState_STATE gilsav = PyGILState_Ensure(); | ^~~~~~ [ 91%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'void eval_component(PyHocObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:880:7: warning: unused variable 'j' [-Wunused-variable] 880 | int j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'PyObject* hocpickle_setstate(PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:2684:11: warning: comparison of integer expressions of different signedness: 'Py_ssize_t' {aka 'long int'} and 'long unsigned int' [-Wsign-compare] 2684 | if (len != size * sizeof(double)) { | ~~~~^~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: In function 'PyObject* iternext_sl(PyHocObject*, hoc_Item*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:1733:1: warning: control reaches end of non-void function [-Wreturn-type] 1733 | } | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:2836:20: warning: 'hocobj_members' defined but not used [-Wunused-variable] 2836 | static PyMemberDef hocobj_members[] = {{NULL, 0, 0, 0, NULL}}; | ^~~~~~~~~~~~~~ [ 91%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'int NPySecObj_init(NPySecObj*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:274:15: warning: unused variable 'cell' [-Wunused-variable] 274 | PyObject* cell = 0; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* NPySecObj_pt3dremove(NPySecObj*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:543:11: warning: unused variable 'n' [-Wunused-variable] 543 | int i0, n; | ^ In file included from /usr/include/python3.9/Python.h:145, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.h:24, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* NPySecObj_psection(NPySecObj*)': /usr/include/python3.9/ceval.h:24:66: warning: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations] 24 | PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:814:24: note: in expansion of macro 'PyEval_CallObject' 814 | PyObject* result = PyEval_CallObject(nrnpy_psection, arglist); | ^~~~~~~~~~~~~~~~~ /usr/include/python3.9/ceval.h:17:43: note: declared here 17 | Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* pyseg_richcmp(NPySegObj*, PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:983:13: warning: unused variable 'pysec' [-Wunused-variable] 983 | PyObject* pysec; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:984:8: warning: unused variable 'result' [-Wunused-variable] 984 | bool result = false; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* pysec_richcmp(NPySecObj*, PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:996:13: warning: unused variable 'pysec' [-Wunused-variable] 996 | PyObject* pysec; | ^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:997:8: warning: unused variable 'result' [-Wunused-variable] 997 | bool result = false; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* var_of_mech_next(NPyVarOfMechIter*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1685:16: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 1685 | if (self->i_ >= self->msym_->s_varn) { | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'int segment_setattro(NPySegObj*, PyObject*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:1847:9: warning: unused variable 'nseg' [-Wunused-variable] 1847 | int nseg; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'PyObject* nrnpy_nrn()': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2286:7: warning: unused variable 'i' [-Wunused-variable] 2286 | int i; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: In function 'void nrnpy_reg_mech(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2455:17: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 2455 | for (i = 0; i < mf->sym->s_varn; ++i) { | ~~^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_nrn.cpp:2461:6: warning: 'void nrnpy_unreg_mech(int)' defined but not used [-Wunused-function] 2461 | void nrnpy_unreg_mech(int type) { | ^~~~~~~~~~~~~~~~ [ 91%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'char* pickle(PyObject*, size_t*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:667:21: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 667 | for (int i = 0; i < *size; ++i) { | ~~^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'PyObject* py_broadcast(PyObject*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:834:7: warning: unused variable 'np' [-Wunused-variable] 834 | int np = nrnmpi_numprocs; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'Object* py_alltoall_type(int, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:986:25: warning: comparison of integer expressions of different signedness: 'int' and 'size_t' {aka 'long unsigned int'} [-Wsign-compare] 986 | for (int j = 0; j < sz; ++j) { | ~~^~~~ In file included from /usr/include/python3.9/pytime.h:6, from /usr/include/python3.9/Python.h:85, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpython.h:24, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:7: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'hpoasgn': /usr/include/python3.9/object.h:422:25: warning: 'poright' may be used uninitialized in this function [-Wmaybe-uninitialized] 422 | if (--op->ob_refcnt != 0) { | ~~~~~~~~~~~~~~~~^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:324:13: note: 'poright' was declared here 324 | PyObject* poright; | ^~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp: In function 'py_alltoall_type': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_p2h.cpp:1051:23: warning: 'root' may be used uninitialized in this function [-Wmaybe-uninitialized] 1051 | nrnmpi_char_scatterv(s, scnt, sdispl, r, rcnt[0], root); | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 91%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'int ECS_insert(int, PyHocObject*, int, int, int, double, double, double, double, double, double, PyHocObject*, PyHocObject*, int, double, double)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:173:9: warning: unused variable 'i' [-Wunused-variable] 173 | int i = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void ics_set_grid_concentrations(int, int, int64_t*, int64_t*, PyObject*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:419:13: warning: unused variable 'j' [-Wunused-variable] 419 | ssize_t j; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:420:13: warning: unused variable 'num_nodes' [-Wunused-variable] 420 | ssize_t num_nodes; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:423:9: warning: unused variable 'total_surface_nodes' [-Wunused-variable] 423 | int total_surface_nodes = nodes_per_seg_start_indices[n]; //nodes_per_seg_lengths has length n + 1 since it has a 0 as the first start index | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void ics_set_grid_currents(int, int, int64_t*, int64_t*, PyObject*, double*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:446:16: warning: unused variable 'j' [-Wunused-variable] 446 | ssize_t i, j, num_nodes; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:446:19: warning: unused variable 'num_nodes' [-Wunused-variable] 446 | ssize_t i, j, num_nodes; | ^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:448:9: warning: unused variable 'total_surface_nodes' [-Wunused-variable] 448 | int total_surface_nodes = nodes_per_seg_start_indices[n]; //nodes_per_seg_lengths has length n + 1 since it has a 0 as the first start index | ^~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'int remove(Grid_node**, Grid_node*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:586:9: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 586 | delete temp; | ^~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:596:5: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 596 | delete delete_me; | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In function 'void empty_list(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:620:9: warning: deleting object of abstract class type 'Grid_node' which has non-virtual destructor will cause undefined behavior [-Wdelete-non-virtual-dtor] 620 | delete old_head; | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'int Grid_node::insert(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:646:16: warning: unused variable 'grid' [-Wunused-variable] 646 | Grid_node* grid; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:648:16: warning: variable 'save' set but not used [-Wunused-but-set-variable] 648 | Grid_node *save; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'virtual void ECS_Grid_node::do_grid_currents(double*, double, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:727:21: warning: unused variable 'c' [-Wunused-variable] 727 | Current_Triple* c; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp: In member function 'virtual void ICS_Grid_node::scatter_grid_concentrations()': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:1402:13: warning: variable 'my_states' set but not used [-Wunused-but-set-variable] 1402 | double* my_states; | ^~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.cpp:11: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ [ 92%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void rxd_include_node_flux1D(int, long int*, double*, PyObject**)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:331:9: warning: unused variable 'i' [-Wunused-variable] 331 | int i; | ^ In file included from /usr/include/python3.9/Python.h:145, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnwrap_Python.h:12, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:11, from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void apply_node_flux(int, long int*, double*, PyObject**, double, double*)': /usr/include/python3.9/ceval.h:24:66: warning: 'PyObject* PyEval_CallObjectWithKeywords(PyObject*, PyObject*, PyObject*)' is deprecated [-Wdeprecated-declarations] 24 | PyEval_CallObjectWithKeywords(callable, arg, (PyObject *)NULL) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:376:26: note: in expansion of macro 'PyEval_CallObject' 376 | result = PyEval_CallObject(source[i], NULL); | ^~~~~~~~~~~~~~~~~ /usr/include/python3.9/ceval.h:17:43: note: declared here 17 | Py_DEPRECATED(3.9) PyAPI_FUNC(PyObject *) PyEval_CallObjectWithKeywords( | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void ode_solve(double, double, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:636:29: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 636 | for(i = 0, j = 0; i < num_states; i++) | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:638:18: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare] 638 | if(i == zvi[j]) | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:661:29: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'int' [-Wsign-compare] 661 | for(i = 0, j = 0; i < num_states; i++) | ~~^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:663:18: warning: comparison of integer expressions of different signedness: 'long unsigned int' and 'long int' [-Wsign-compare] 663 | if(i == zvi[j]) | ~~^~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void setup_currents(int, int, int*, int*, double*, PyHocObject**, int*, int*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:726:28: warning: variable 'idx' set but not used [-Wunused-but-set-variable] 726 | int i, j, k, id, side, idx; | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'void get_reaction_rates(ICSReactions*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1820:9: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 1820 | if(react->vptrs != NULL) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1823:13: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 1823 | react->reaction(states_for_reaction, params_for_reaction, result_array, mc_mult, ecs_states_for_reaction, ecs_params_for_reaction, ecs_result, flux, v); | ^~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1210:13: warning: 'void free_SpeciesIndexList()' defined but not used [-Wunused-function] 1210 | static void free_SpeciesIndexList() | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp: In function 'solve_reaction(ICSReactions*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1910:13: warning: 'ecs_params_for_reaction' may be used uninitialized in this function [-Wmaybe-uninitialized] 1910 | double* ecs_params_for_reaction; | ^~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2111:54: warning: 'ecs_result_dx' may be used uninitialized in this function [-Wmaybe-uninitialized] 2111 | pd = (ecs_result_dx[jac_i] - ecs_result[jac_i])/dx; | ~~~~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2111:74: warning: 'ecs_result' may be used uninitialized in this function [-Wmaybe-uninitialized] 2111 | pd = (ecs_result_dx[jac_i] - ecs_result[jac_i])/dx; | ~~~~~~~~~~~~~~~~^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2084:63: warning: 'ecs_states_for_reaction_dx' may be used uninitialized in this function [-Wmaybe-uninitialized] 2084 | ecs_states_for_reaction_dx[i] += dx; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:1983:48: warning: 'ecs_states_for_reaction' may be used uninitialized in this function [-Wmaybe-uninitialized] 1983 | ecs_states_for_reaction[i] = cvode_states[react->ecs_index[segment][i]]; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.cpp:2008:24: warning: 'mc_mult' may be used uninitialized in this function [-Wmaybe-uninitialized] 2008 | mc_mult[i] = react->mc_multiplier[i][segment]; | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ 92%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'ReactGridData* create_threaded_reactions(int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:256:30: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 256 | for(i = 0; i < react->region_size; i++) | ~~^~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void* ecs_do_reactions(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:358:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 358 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:366:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 366 | for(k = 0; j < react->num_species_involved + react->num_params_involved; k++, j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:374:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 374 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:381:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 381 | for(k = 0; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:397:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 397 | for (j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:399:50: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 399 | for(k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:403:55: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 403 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:413:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 413 | for (j = 0; j < react->num_species_involved - 1; j ++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:415:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 415 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:418:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 418 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:430:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 430 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:439:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 439 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:511:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 511 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:517:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 517 | for(k = 0; j < react->num_species_involved + react->num_params_involved; k++, j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:523:38: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 523 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:530:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 530 | for(k = 0; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:546:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 546 | for (j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:548:50: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 548 | for(k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:552:55: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 552 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:562:43: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 562 | for (j = 0; j < react->num_species_involved - 1; j ++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:564:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 564 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:567:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 567 | for (n = 0; n < react->num_species_involved; n++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:579:51: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 579 | for (k = j + 1; k < react->num_species_involved; k++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:588:42: warning: comparison of integer expressions of different signedness: 'int' and 'unsigned int' [-Wsign-compare] 588 | for(j = 0; j < react->num_species_involved; j++) | ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void _rhs_variable_step_ecs(double, const double*, double*, int)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:735:26: warning: unused variable 'orig_1d_states' [-Wunused-variable] 735 | double const * const orig_1d_states = states + _cvode_offset; | ^~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:738:19: warning: unused variable 'orig_1d_ydot' [-Wunused-variable] 738 | double* const orig_1d_ydot = ydot + _cvode_offset; | ^~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'void _rhs_variable_step_helper(Grid_node*, const double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:19: warning: unused variable 'bc_x' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:25: warning: unused variable 'bc_y' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:815:31: warning: unused variable 'bc_z' [-Wunused-variable] 815 | unsigned char bc_x, bc_y, bc_z; | ^~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:816:12: warning: unused variable 'bc' [-Wunused-variable] 816 | double bc; | ^~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:15:12: warning: 'int dg_adi(Grid_node*)' declared 'static' but never defined [-Wunused-function] 15 | static int dg_adi(Grid_node*); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function '_rhs_variable_step_helper(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:813:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 813 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp: In function 'ics_ode_solve(double, double*, double const*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_extracellular.cpp:993:16: warning: 'grid_size' may be used uninitialized in this function [-Wmaybe-uninitialized] 993 | RHS += grid_size; | ^~~~~~~~~ [ 92%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_find_deltas(long int, long int, long int, double*, long int*, long int*, double*, double, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:166:12: warning: unused variable 'dt' [-Wunused-variable] 166 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_find_deltas(long int, long int, long int, double*, long int*, long int*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:218:12: warning: unused variable 'dt' [-Wunused-variable] 218 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void* do_ics_deltas(void*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:267:12: warning: unused variable 'dt' [-Wunused-variable] 267 | double dt = *dt_ptr; | ^~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_x_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:323:10: warning: unused variable 'N' [-Wunused-variable] 323 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_y_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:390:10: warning: unused variable 'N' [-Wunused-variable] 390 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_z_inhom(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:454:10: warning: unused variable 'N' [-Wunused-variable] 454 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_x(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:523:10: warning: unused variable 'N' [-Wunused-variable] 523 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_y(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:586:10: warning: unused variable 'N' [-Wunused-variable] 586 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void ics_dg_adi_z(ICS_Grid_node*, int, int, int, double, double*, double*, double*, double*, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:650:10: warning: unused variable 'N' [-Wunused-variable] 650 | long N = 0; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp: In function 'void variable_step_delta(long int, long int, long int, double*, long int*, long int*, const double*, double, double*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:810:12: warning: variable 'prev_dc' set but not used [-Wunused-but-set-variable] 810 | double prev_dc, current_dc, next_dc; | ^~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h: At global scope: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:6: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_intracellular.cpp:96:12: warning: 'int solve_dd_clhs_tridiag(int, double, double, double, double, double, double, double, double*, double*)' defined but not used [-Wunused-function] 96 | static int solve_dd_clhs_tridiag(const int N, const double l_diag, const double diag, | ^~~~~~~~~~~~~~~~~~~~~ [ 92%] Building CXX object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -std=c++98 -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:4: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:308:15: warning: 'double get_alpha_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 308 | static double get_alpha_scalar(double*, int); | ^~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:309:15: warning: 'double get_alpha_array(double*, int)' declared 'static' but never defined [-Wunused-function] 309 | static double get_alpha_array(double*, int); | ^~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:310:15: warning: 'double get_lambda_scalar(double*, int)' declared 'static' but never defined [-Wunused-function] 310 | static double get_lambda_scalar(double*, int); | ^~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:311:15: warning: 'double get_lambda_array(double*, int)' declared 'static' but never defined [-Wunused-function] 311 | static double get_lambda_array(double*, int); | ^~~~~~~~~~~~~~~~ In file included from /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:5: /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd.h:172:13: warning: 'void ecs_refresh_reactions(int)' declared 'static' but never defined [-Wunused-function] 172 | static void ecs_refresh_reactions(int); | ^~~~~~~~~~~~~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp: In function '_rhs_variable_step_helper_tort(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:770:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 770 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp: In function '_rhs_variable_step_helper_vol(Grid_node*, double const*, double*)': /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_vol.cpp:879:20: warning: 'prev_i' may be used uninitialized in this function [-Wmaybe-uninitialized] 879 | int index, prev_i, prev_j, prev_k, next_i ,next_j, next_k; | ^~~~~~ [ 92%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_marching_cubes.c [ 93%] Building C object src/nrniv/CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Dnrniv_lib_EXPORTS -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxd_llgramarea.c [ 93%] Linking CXX shared library ../../lib/libnrniv.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv_lib.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicxx -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,libnrniv.so.0.0.0 -o ../../lib/libnrniv.so.0.0.0 CMakeFiles/nrniv_lib.dir/__/ivoc/apwindow.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/axis.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/bndedval.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/cbwidget.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/checkpnt.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/epsprint.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/fourier.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/gifimage.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/graphvec.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grglyph.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/grmanip.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/hocmark.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/htlist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/idraw.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivoc.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocmain.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocrand.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ivocvect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/matrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mlinedit.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/mymath.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/objcmd.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oc2iv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbox.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocbrowsr.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocdeck.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocfile.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ochelp.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/oclist.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocmatrix.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocnoiv1.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocobserv.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpicker.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocpointer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/ocptrvector.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/octimer.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/pwman.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rect.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/rubband.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scene.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/scenepic.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/strfun.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/symchoos.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/utility.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xmenu.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xyview.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/field.cpp.o CMakeFiles/nrniv_lib.dir/__/ivoc/xdep.cpp.o CMakeFiles/nrniv_lib.dir/bbs.cpp.o CMakeFiles/nrniv_lib.dir/bbsavestate.cpp.o CMakeFiles/nrniv_lib.dir/bbsdirect.cpp.o CMakeFiles/nrniv_lib.dir/bbslocal.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv.cpp.o CMakeFiles/nrniv_lib.dir/bbslsrv2.cpp.o CMakeFiles/nrniv_lib.dir/bbsrcli.cpp.o CMakeFiles/nrniv_lib.dir/bbssrv.cpp.o CMakeFiles/nrniv_lib.dir/bgpmeminfo.c.o CMakeFiles/nrniv_lib.dir/cachevec.cpp.o CMakeFiles/nrniv_lib.dir/classreg.cpp.o CMakeFiles/nrniv_lib.dir/cvodeobj.cpp.o CMakeFiles/nrniv_lib.dir/cvodestb.cpp.o CMakeFiles/nrniv_lib.dir/cvtrset.cpp.o CMakeFiles/nrniv_lib.dir/cxprop.cpp.o CMakeFiles/nrniv_lib.dir/datapath.cpp.o CMakeFiles/nrniv_lib.dir/finithnd.cpp.o CMakeFiles/nrniv_lib.dir/geometry3d.cpp.o CMakeFiles/nrniv_lib.dir/glinerec.cpp.o CMakeFiles/nrniv_lib.dir/hocmech.cpp.o CMakeFiles/nrniv_lib.dir/impedanc.cpp.o CMakeFiles/nrniv_lib.dir/kschan.cpp.o CMakeFiles/nrniv_lib.dir/kssingle.cpp.o CMakeFiles/nrniv_lib.dir/linmod.cpp.o CMakeFiles/nrniv_lib.dir/linmod1.cpp.o CMakeFiles/nrniv_lib.dir/matrixmap.cpp.o CMakeFiles/nrniv_lib.dir/multisplit.cpp.o CMakeFiles/nrniv_lib.dir/ndatclas.cpp.o CMakeFiles/nrniv_lib.dir/netcvode.cpp.o CMakeFiles/nrniv_lib.dir/netpar.cpp.o CMakeFiles/nrniv_lib.dir/nonlinz.cpp.o CMakeFiles/nrniv_lib.dir/nrnbbcore_write.cpp.o CMakeFiles/nrniv_lib.dir/nrndae.cpp.o CMakeFiles/nrniv_lib.dir/nrndaspk.cpp.o CMakeFiles/nrniv_lib.dir/nrnmenu.cpp.o CMakeFiles/nrniv_lib.dir/nrnpy.cpp.o CMakeFiles/nrniv_lib.dir/nrnrtime.cpp.o CMakeFiles/nrniv_lib.dir/nrnste.cpp.o CMakeFiles/nrniv_lib.dir/nvector_nrnserial_ld.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnthread_ld.c.o CMakeFiles/nrniv_lib.dir/ocbbs.cpp.o CMakeFiles/nrniv_lib.dir/occvode.cpp.o CMakeFiles/nrniv_lib.dir/ocjump.cpp.o CMakeFiles/nrniv_lib.dir/partrans.cpp.o CMakeFiles/nrniv_lib.dir/ppshape.cpp.o CMakeFiles/nrniv_lib.dir/prcellstate.cpp.o CMakeFiles/nrniv_lib.dir/pysecname2sec.cpp.o CMakeFiles/nrniv_lib.dir/rotate3d.cpp.o CMakeFiles/nrniv_lib.dir/savstate.cpp.o CMakeFiles/nrniv_lib.dir/secbrows.cpp.o CMakeFiles/nrniv_lib.dir/shape.cpp.o CMakeFiles/nrniv_lib.dir/shapeplt.cpp.o CMakeFiles/nrniv_lib.dir/singlech.cpp.o CMakeFiles/nrniv_lib.dir/spaceplt.cpp.o CMakeFiles/nrniv_lib.dir/splitcell.cpp.o CMakeFiles/nrniv_lib.dir/symdir.cpp.o CMakeFiles/nrniv_lib.dir/tqueue.cpp.o CMakeFiles/nrniv_lib.dir/vrecord.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnoc/cabcode.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/capac.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/clamp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/code.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/eion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/extcelln.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fadvance.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/fstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocprax.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hocusr.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hoc_oop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/init.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ldifus.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/method3.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnnemo.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrntimeout.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/nrnversion.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive0.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/point.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/psection.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/seclist.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/secref.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/solve.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/synapse.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/treeset.c.o CMakeFiles/nrniv_lib.dir/__/oc/isaac64.c.o CMakeFiles/nrniv_lib.dir/__/oc/mcran4.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnisaac.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnran123.c.o CMakeFiles/nrniv_lib.dir/__/oc/audit.c.o CMakeFiles/nrniv_lib.dir/__/oc/axis.c.o CMakeFiles/nrniv_lib.dir/__/oc/bksub.c.o CMakeFiles/nrniv_lib.dir/__/oc/code2.c.o CMakeFiles/nrniv_lib.dir/__/oc/cygwinprt.c.o CMakeFiles/nrniv_lib.dir/__/oc/debug.c.o CMakeFiles/nrniv_lib.dir/__/oc/fileio.c.o CMakeFiles/nrniv_lib.dir/__/oc/fmenu.c.o CMakeFiles/nrniv_lib.dir/__/oc/ftime.c.o CMakeFiles/nrniv_lib.dir/__/oc/functabl.c.o CMakeFiles/nrniv_lib.dir/__/oc/getelm.c.o CMakeFiles/nrniv_lib.dir/__/oc/getsym.c.o CMakeFiles/nrniv_lib.dir/__/oc/hoc.c.o CMakeFiles/nrniv_lib.dir/__/oc/hocedit.c.o CMakeFiles/nrniv_lib.dir/__/oc/isoc99.c.o CMakeFiles/nrniv_lib.dir/__/oc/lineq.c.o CMakeFiles/nrniv_lib.dir/__/oc/list.c.o CMakeFiles/nrniv_lib.dir/__/oc/math.c.o CMakeFiles/nrniv_lib.dir/__/oc/nonlin.c.o CMakeFiles/nrniv_lib.dir/__/oc/nrnfilewrap.c.o CMakeFiles/nrniv_lib.dir/__/oc/ocerf.c.o CMakeFiles/nrniv_lib.dir/__/oc/parallel.c.o CMakeFiles/nrniv_lib.dir/__/oc/parse.c.o CMakeFiles/nrniv_lib.dir/__/oc/plot.c.o CMakeFiles/nrniv_lib.dir/__/oc/plt.c.o CMakeFiles/nrniv_lib.dir/__/oc/prmat.c.o CMakeFiles/nrniv_lib.dir/__/oc/regexp.c.o CMakeFiles/nrniv_lib.dir/__/oc/scoprand.c.o CMakeFiles/nrniv_lib.dir/__/oc/settext.c.o CMakeFiles/nrniv_lib.dir/__/oc/subrows.c.o CMakeFiles/nrniv_lib.dir/__/oc/symbol.c.o CMakeFiles/nrniv_lib.dir/__/oc/version.c.o CMakeFiles/nrniv_lib.dir/__/oc/x.c.o CMakeFiles/nrniv_lib.dir/__/oc/xred.c.o CMakeFiles/nrniv_lib.dir/__/memacs/ansi.c.o CMakeFiles/nrniv_lib.dir/__/memacs/basic.c.o CMakeFiles/nrniv_lib.dir/__/memacs/bind.c.o CMakeFiles/nrniv_lib.dir/__/memacs/buffer.c.o CMakeFiles/nrniv_lib.dir/__/memacs/display.c.o CMakeFiles/nrniv_lib.dir/__/memacs/file.c.o CMakeFiles/nrniv_lib.dir/__/memacs/fileio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/line.c.o CMakeFiles/nrniv_lib.dir/__/memacs/lock.c.o CMakeFiles/nrniv_lib.dir/__/memacs/main1.c.o CMakeFiles/nrniv_lib.dir/__/memacs/random.c.o CMakeFiles/nrniv_lib.dir/__/memacs/region.c.o CMakeFiles/nrniv_lib.dir/__/memacs/search.c.o CMakeFiles/nrniv_lib.dir/__/memacs/spawn.c.o CMakeFiles/nrniv_lib.dir/__/memacs/tcap.c.o CMakeFiles/nrniv_lib.dir/__/memacs/termio.c.o CMakeFiles/nrniv_lib.dir/__/memacs/window.c.o CMakeFiles/nrniv_lib.dir/__/memacs/word.c.o CMakeFiles/nrniv_lib.dir/__/mesch/arnoldi.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bdfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/bkpfacto.c.o CMakeFiles/nrniv_lib.dir/__/mesch/chfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/conjgrad.c.o CMakeFiles/nrniv_lib.dir/__/mesch/copy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/dmacheps.c.o CMakeFiles/nrniv_lib.dir/__/mesch/err.c.o CMakeFiles/nrniv_lib.dir/__/mesch/extras.c.o CMakeFiles/nrniv_lib.dir/__/mesch/fft.c.o CMakeFiles/nrniv_lib.dir/__/mesch/givens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/hsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/init.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iter0.c.o CMakeFiles/nrniv_lib.dir/__/mesch/iternsym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/itersym.c.o CMakeFiles/nrniv_lib.dir/__/mesch/ivecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lanczos.c.o CMakeFiles/nrniv_lib.dir/__/mesch/lufactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/machine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/matrixio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/meminfo.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/memstat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/mfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/norm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/otherio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/pxop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/qrfactor.c.o CMakeFiles/nrniv_lib.dir/__/mesch/schur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/solve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparse.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sparseio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spbkp.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spchfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/splufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/sprow.c.o CMakeFiles/nrniv_lib.dir/__/mesch/spswap.c.o CMakeFiles/nrniv_lib.dir/__/mesch/submat.c.o CMakeFiles/nrniv_lib.dir/__/mesch/svd.c.o CMakeFiles/nrniv_lib.dir/__/mesch/symmeig.c.o CMakeFiles/nrniv_lib.dir/__/mesch/update.c.o CMakeFiles/nrniv_lib.dir/__/mesch/vecop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/version.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zcopy.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zfunc.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zgivens.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhessen.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zhsehldr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zlufctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmachine.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatio.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatlab.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmatop.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zmemory.c.o CMakeFiles/nrniv_lib.dir/__/mesch/znorm.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zqrfctr.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zschur.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zsolve.c.o CMakeFiles/nrniv_lib.dir/__/mesch/zvecop.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/apcount.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/feature.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire2.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/oclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/ppmark.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/exp2syn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/hh.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire4.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/passive.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/stim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/vclmp.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/expsyn.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/intfire1.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/netstim.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/pattern.c.o CMakeFiles/nrniv_lib.dir/__/nrnoc/svclmp.c.o CMakeFiles/nrniv_lib.dir/__/gnu/ACG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Binomial.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Complex.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/DiscUnif.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Erlang.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Geom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/HypGeom.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/LogNorm.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/MLCG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/NegExp.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Normal.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Poisson.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RNG.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Random.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/RndInt.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplHist.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/SmplStat.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Uniform.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/Weibull.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/builtin.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_avec.cpp.o CMakeFiles/nrniv_lib.dir/__/gnu/d_vec.cpp.o CMakeFiles/nrniv_lib.dir/__/scopmath/abort.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adams.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adeuler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/adrunge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/advance.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/boundary.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crank.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csoda.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/csodabnc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/deflate.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/dimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/scoperf.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/euler.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/expfit.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/exprand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/f2cmisc.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/factoria.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/force.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gauss.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/gear.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/getmem.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/harmonic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/heun.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/hyperbol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/invert.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/lag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/legendre.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/normrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perpulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/perstep.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisrand.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/poisson.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/praxis.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/pulse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/quad.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ramp.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revhyper.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsawto.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/revsigmo.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/romberg.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/runge.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sawtooth.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/schedule.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/seidel.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sigmoid.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simeq.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/simplex.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/vsparse.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/spline.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/squarewa.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/step.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/threshol.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/tridiag.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/sparse_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/newton_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/crout_thread.c.o CMakeFiles/nrniv_lib.dir/__/scopmath/ssimplic_thread.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/spsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/sputils.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspalloc.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspbuild.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspfactor.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspoutput.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/cspsolve.c.o CMakeFiles/nrniv_lib.dir/__/sparse13/csputils.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbandpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvbbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvdiag.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodea.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodes.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvodesio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/cvodes/cvspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaband.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idabbdpre.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/ida.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idadense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaic.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaio.c.o CMakeFiles/nrniv_lib.dir/__/sundials/ida/idaspgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/band.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/dense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/iterative.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_serial.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/smalldense.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/spgmr.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/sundialsmath.c.o CMakeFiles/nrniv_lib.dir/nvector_nrnparallel_ld.c.o CMakeFiles/nrniv_lib.dir/__/sundials/shared/nvector_parallel.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnmpi.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/bbsmpipack.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/mpispike.c.o CMakeFiles/nrniv_lib.dir/__/nrnmpi/nrnrt.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpython.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_hoc.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_nrn.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/nrnpy_p2h.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/grids.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_extracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_intracellular.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_vol.cpp.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_marching_cubes.c.o CMakeFiles/nrniv_lib.dir/__/nrnpython/rxd_llgramarea.c.o /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbsdirectmpi.cpp:35:7: warning: type 'struct KeepArgs' violates the C++ One Definition Rule [-Wodr] 35 | class KeepArgs : public std::map{}; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/bbslocal.cpp:25:7: note: a type with different bases is defined in another translation unit 25 | class KeepArgs : public std::map{}; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: warning: type 'struct OcSparseMatrix' violates the C++ One Definition Rule [-Wodr] 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: a different type is defined in another translation unit 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: the first difference of corresponding definitions is field 'm_' 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:151:16: note: a field of same name but different type is defined in another translation unit 151 | SPMAT* m_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ocmatrix.h:122:7: note: type 'struct SPMAT' should match type 'void' 122 | class OcSparseMatrix : public OcMatrix { // type 2 | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:185:9: warning: type 'union ' violates the C++ One Definition Rule [-Wodr] 185 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:38:11: note: a different type is defined in another translation unit 38 | union { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:188:12: note: the first difference of corresponding definitions is field 'pstr_' 188 | char** pstr_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:41:15: note: a field with different name is defined in another translation unit 41 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: warning: type 'struct PyHocObject' violates the C++ One Definition Rule [-Wodr] 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:57:3: note: a different type is defined in another translation unit 57 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:184:25: note: the first difference of corresponding definitions is field 'ho_' 184 | PyObject_HEAD Object* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/grids.h:37:11: note: a field of same name but different type is defined in another translation unit 37 | void* ho_; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/nrnpy_hoc.cpp:198:3: note: type 'struct Object' should match type 'void' 198 | } PyHocObject; | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:13: warning: type of 's_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: return value type mismatch 174 | int s_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: 's_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:174:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:23: warning: type of 'do_fio' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: return value type mismatch 184 | int do_fio() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: 'do_fio' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:184:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csoda.c:4870:33: warning: type of 'e_wsfe' does not match original declaration [-Wlto-type-mismatch] 4870 | integer s_wsfe(), do_fio(), e_wsfe(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: return value type mismatch 189 | int e_wsfe() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: type 'int' should match type 'integer' /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: 'e_wsfe' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/scopmath/csodabnc.c:189:5: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:230:14: warning: type of 'oc_restore_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 230 | void oc_restore_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: type mismatch in parameter 5 445 | void oc_restore_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: 'oc_restore_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:445:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../ivoc/ocjump.cpp:229:14: warning: type of 'oc_save_hoc_oop' does not match original declaration [-Wlto-type-mismatch] 229 | void oc_save_hoc_oop(Object**, Objectdata**, int**, int*, Symlist**); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: type mismatch in parameter 5 428 | void oc_save_hoc_oop( | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: 'oc_save_hoc_oop' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/../oc/hoc_oop.c:428:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/init.c:285:13: warning: type of 'nrn_threads_create' does not match original declaration [-Wlto-type-mismatch] 285 | extern void nrn_threads_create(int); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type mismatch in parameter 2 488 | void nrn_threads_create(int n, int parallel) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: type 'int' should match type 'void' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/multicore.c:488:6: note: 'nrn_threads_create' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1864:6: warning: type of 'nrnthread_get_trajectory_requests' does not match original declaration [-Wlto-type-mismatch] 1864 | void nrnthread_get_trajectory_requests(int tid, int& bsize, int& ntrajec, void**& vpr, int*& types, int*& indices, double**& pvars, double**& varrays); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: type mismatch in parameter 9 5561 | void nrnthread_get_trajectory_requests(int tid, int& bsize, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: 'nrnthread_get_trajectory_requests' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:5561:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../parallel/ocbbs.cpp:33:20: warning: 'nrnmpi_multisplit' violates the C++ One Definition Rule [-Wodr] 33 | extern int nrnmpi_multisplit(Section*, double x, int sid, int backbonestyle); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: return value type mismatch 310 | void nrnmpi_multisplit(Section* sec, double x, int sid, int backbone_style) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: type 'void' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:310:6: note: 'nrnmpi_multisplit' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrniv_mf.h:45:12: warning: type of 'at_time' does not match original declaration [-Wlto-type-mismatch] 45 | extern int at_time(NrnThread*, double); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: return value type mismatch 125 | bool at_time(NrnThread* nt, double te) { | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: type 'bool' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: 'at_time' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodestb.cpp:125:6: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:78:17: warning: type of 'N_VNew_NrnParallelLD' does not match original declaration [-Wlto-type-mismatch] 78 | extern N_Vector N_VNew_NrnParallelLD(int comm, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c:180:10: note: type mismatch in parameter 1 180 | N_Vector N_VNew_NrnParallelLD(MPI_Comm comm, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c:180:10: note: type 'struct ompi_communicator_t *' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c:180:10: note: 'N_VNew_NrnParallelLD' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nvector_nrnparallel_ld.c:180:10: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/cvodeobj.cpp:76:17: warning: type of 'N_VNew_Parallel' does not match original declaration [-Wlto-type-mismatch] 76 | extern N_Vector N_VNew_Parallel(int comm, long int local_length, | ^ /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c:161:10: note: type mismatch in parameter 1 161 | N_Vector N_VNew_Parallel(MPI_Comm comm, | ^ /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c:161:10: note: type 'struct ompi_communicator_t *' should match type 'int' /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c:161:10: note: 'N_VNew_Parallel' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/sundials/shared/nvector_parallel.c:161:10: note: code may be misoptimized unless '-fno-strict-aliasing' is used /builddir/build/BUILD/nrn-7.8.1/src/nrnoc/nrncvode.h:20:13: warning: type of 'nrn_random_play' does not match original declaration [-Wlto-type-mismatch] 20 | extern void nrn_random_play(NrnThread*); | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: type mismatch in parameter 1 583 | void nrn_random_play() { | ^ /builddir/build/BUILD/nrn-7.8.1/src/ivoc/ivocrand.cpp:583:6: note: 'nrn_random_play' was previously declared here /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/gnu/SmplHist.cpp:51:41: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 51 | bucketCount = new int[howManyBuckets]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'mk_cellgroups', inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:648:40: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 648 | cgs[i].output_ps = new PreSyn*[npre]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'mk_cgs_netcon_info', inlined from 'mk_cellgroups' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:722:21, inlined from 'part1' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:334:33: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:558:44: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 558 | cgs[i].netcons = new NetCon*[nccnt[i]+1]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'part1': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp: In member function 'gapsolve': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] 619 | cmplx_spSolve(m_, rb-1, rx1-1, jb-1, jx1-1); | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 2 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 3 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 4 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: warning: 'cmplx_spSolve' accessing 8 bytes in a region of size 0 [-Wstringop-overflow=] /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nonlinz.cpp:619:20: note: referencing argument 5 of type 'double *' /builddir/build/BUILD/nrn-7.8.1/src/sparse13/spsolve.c:135:1: note: in a call to function 'cmplx_spSolve' 135 | spSolve( eMatrix, RHS, Solution IMAG_VECTORS ) | ^ In function 'fgets', inlined from 'xopen_audit' at /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:243:2: /usr/include/bits/stdio2.h:272:10: warning: '__fgets_alias' writing 200 bytes into a region of size 197 overflows the destination [-Wstringop-overflow=] 272 | return __fgets_alias (__s, __n, __stream); | ^ /usr/include/bits/stdio2.h: In function 'xopen_audit': /builddir/build/BUILD/nrn-7.8.1/src/oc/audit.c:239:14: note: at offset 3 into destination object 'buf' of size 200 239 | char buf[200], *bp; | ^ /usr/include/bits/stdio2.h:251:14: note: in a call to function '__fgets_alias' declared with attribute 'access (write_only, 1, 2)' 251 | extern char *__REDIRECT (__fgets_alias, | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/tqueue.cpp:110:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 110 | implementPool(TQItemPool, TQItem) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrncvode/hocevent.cpp:12:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 12 | implementPool(HocEventPool, HocEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp: In function 'nrnmpi_setup_transfer': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:837:41: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 837 | outsrc_buf_ = new double[szalloc]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/partrans.cpp:838:39: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 838 | poutsrc_ = new double*[szalloc]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp: In function 'nrnthread_dat2_3.part.0': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/nrnbbcore_write.cpp:1385:24: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1385 | delays = new double[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:302:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 302 | implementStructPool(SectionPool, Section) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:152:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 152 | DoubleArrayPool** p1 = new DoubleArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'read_temp1', inlined from 'nrn_mk_prop_pools' at /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:257:30: /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp:153:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 153 | DatumArrayPool** p2 = new DatumArrayPool*[npools_]; | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/cxprop.cpp: In function 'nrn_mk_prop_pools': /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:449:1: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 449 | implementPool(SelfEventPool, SelfEvent) | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp: In member function 'init_global': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/../nrncvode/netcvode.cpp:1773:71: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1773 | ml->nodelist = new Node*[ml->nodecount]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp: In member function 'rate': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/singlech.cpp:74:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 74 | int* s = new int[size]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function '__ct_base ': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2434:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2434 | smap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:2435:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 2435 | rmap = new double*[nmap]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'v_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:3144:38: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 3144 | sid0i = new int[nback]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp: In member function 'exchange_setup': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:603:48: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 603 | MultiSplit** vec2ms = new MultiSplit*[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1226:57: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1226 | m.nd_rt_index_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:1227:60: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1227 | m.nd_rt_index_th_ = new int[m.nnode_rt_ + 2]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:811:32: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 811 | int* rthost = new int[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/multisplit.cpp:708:40: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 708 | int* connects2short = new int[n]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'settype': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1456:58: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1456 | Symbol** ligands = new Symbol*[nligand_+1]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp: In member function 'setstructure': /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1895:47: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1895 | gc_ = new KSGateComplex[ngate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1899:50: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1899 | trans_ = new KSTransition[ntrans_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ /builddir/build/BUILD/nrn-7.8.1/src/nrniv/kschan.cpp:1903:45: warning: argument 1 value '18446744073709551615' exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=] 1903 | state_ = new KSState[nstate_]; | ^ /usr/include/c++/11/new:128:26: note: in a call to allocation function 'operator new []' declared here 128 | _GLIBCXX_NODISCARD void* operator new[](std::size_t) _GLIBCXX_THROW (std::bad_alloc) | ^ In function 'strncat', inlined from 'emacs_main' at /builddir/build/BUILD/nrn-7.8.1/src/memacs/main1.c:315:5: /usr/include/bits/string_fortified.h:135:10: warning: '__builtin_strncat' specified bound 16 equals destination size [-Wstringop-overflow=] 135 | return __builtin___strncat_chk (__dest, __src, __len, | ^ cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E cmake_symlink_library ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so.0.0.0 ../../lib/libnrniv.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 93%] Built target nrniv_lib /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/nrniv.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/nrniv.dir/build.make src/nrniv/CMakeFiles/nrniv.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 93%] Building CXX object src/nrniv/CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++98 -o CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/src/ivoc/nrnmain.cpp [ 93%] Building C object src/nrniv/CMakeFiles/nrniv.dir/__/oc/ockludge.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/ockludge.c [ 94%] Building C object src/nrniv/CMakeFiles/nrniv.dir/__/oc/modlreg.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/oc/modlreg.c [ 94%] Linking CXX executable ../../bin/nrniv cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/nrniv.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicxx -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/nrniv.dir/__/ivoc/nrnmain.cpp.o CMakeFiles/nrniv.dir/__/oc/ockludge.c.o CMakeFiles/nrniv.dir/__/oc/modlreg.c.o -o ../../bin/nrniv ../../lib/libnrniv.so.0.0.0 -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 94%] Built target nrniv /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv/CMakeFiles/modlunit.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrniv/CMakeFiles/modlunit.dir/build.make src/nrniv/CMakeFiles/modlunit.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 95%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y: In function 'yyparse': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y:292:51: warning: unused variable 'd' [-Wunused-variable] 292 | {P1{Item *q; double d, unit_mag(); | ^ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/parse1.y:292:41: warning: unused variable 'q' [-Wunused-variable] 292 | {P1{Item *q; double d, unit_mag(); | ^ [ 95%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/lex.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/lex.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c:1471:16: warning: 'input' defined but not used [-Wunused-function] 1471 | #else | ^ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/lex.c:1428:17: warning: 'yyunput' defined but not used [-Wunused-function] 1428 | | ^ [ 95%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/consist.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/consist.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/consist.c [ 95%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/declare.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/declare.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/declare.c [ 95%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/init.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/init.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:18:30: warning: missing braces around initializer [-Wmissing-braces] 18 | } keywords[] = { | ^ 19 | "VERBATIM", VERBATIM, | { } 20 | "ENDVERBATIM", END_VERBATIM, /* explicit in lex.l */ | { } 21 | "COMMENT", COMMENT, | { } 22 | "ENDCOMMENT", END_COMMENT, /* explicit in lex.l */ | { } 23 | "TITLE", TITLE, | { } 24 | "CONSTANT", CONSTANT, | { } 25 | "PARAMETER", PARAMETER, | { } 26 | "INDEPENDENT", INDEPENDENT, | { } 27 | "ASSIGNED", ASSIGNED, | { } 28 | "INITIAL", INITIAL1, | { } 29 | "TERMINAL", TERMINAL, | { } 30 | "DERIVATIVE", DERIVATIVE, | { } 31 | "EQUATION", EQUATION, | { } 32 | "BREAKPOINT", BREAKPOINT, | { } 33 | "CONDUCTANCE", CONDUCTANCE, | { } 34 | "SOLVE", SOLVE, | { } 35 | "STATE", STATE, | { } 36 | "STEPPED", STEPPED, | { } 37 | "LINEAR", LINEAR, | { } 38 | "NONLINEAR", NONLINEAR, | { } 39 | "DISCRETE", DISCRETE, | { } 40 | "FUNCTION", FUNCTION1, | { } 41 | "FUNCTION_TABLE", FUNCTION_TABLE, | { } 42 | "PROCEDURE", PROCEDURE, | { } 43 | "PARTIAL", PARTIAL, | { } 44 | "INT", INT, | { } 45 | "DEL2", DEL2, | { } 46 | "DEL", DEL, | { } 47 | "LOCAL", LOCAL, | { } 48 | "METHOD", USING, | { } 49 | "STEADYSTATE", USING, | { } 50 | "SENS", SENS, | { } 51 | "STEP", STEP, | { } 52 | "WITH", WITH, | { } 53 | "FROM", FROM, | { } 54 | "TO", TO, | { } 55 | "BY", BY, | { } 56 | "if", IF, | { } 57 | "else", ELSE, | { } 58 | "while", WHILE, | { } 59 | "IF", IF, | { } 60 | "ELSE", ELSE, | { } 61 | "WHILE", WHILE, | { } 62 | "START", START1, | { } 63 | "DEFINE", DEFINE1, | { } 64 | 65 | "KINETIC", KINETIC, | { } 66 | "CONSERVE", CONSERVE, | { } 67 | "PLOT", PLOT, | { } 68 | "VS", VS, | { } 69 | "LAG", LAG, | { } 70 | "RESET", RESET, | { } 71 | "MATCH", MATCH, | { } 72 | "MODEL_LEVEL", MODEL_LEVEL, /* inserted by merge */ | { } 73 | "SWEEP", SWEEP, | { } 74 | "FIRST", FIRST, | { } 75 | "LAST", LAST, | { } 76 | "COMPARTMENT", COMPARTMENT, | { } 77 | "LONGITUDINAL_DIFFUSION", LONGDIFUS, | { } 78 | "PUTQ", PUTQ, | { } 79 | "GETQ", GETQ, | { } 80 | "IFERROR", IFERROR, | { } 81 | "SOLVEFOR", SOLVEFOR, | { } 82 | "UNITS", UNITBLK, | { } 83 | "UNITSON", UNITSON, | { } 84 | "UNITSOFF", UNITSOFF, | { } 85 | "TABLE", TABLE, | { } 86 | "DEPEND", DEPEND, | { } 87 | "NEURON", NEURON, | { } 88 | "SUFFIX", SUFFIX, | { } 89 | "POINT_PROCESS", SUFFIX, | { } 90 | "ARTIFICIAL_CELL", SUFFIX, | { } 91 | "NONSPECIFIC_CURRENT", NONSPECIFIC, | { } 92 | "ELECTRODE_CURRENT", ELECTRODE_CURRENT, | { } 93 | "USEION", USEION, | { } 94 | "READ", READ, | { } 95 | "WRITE", WRITE, | { } 96 | "RANGE", RANGE, | { } 97 | "SECTION", SECTION, | { } 98 | "VALENCE", VALENCE, | { } 99 | "GLOBAL", GLOBAL, | { } 100 | "POINTER", POINTER, | { } 101 | "BBCOREPOINTER", POINTER, | { } 102 | "EXTERNAL", EXTERNAL, | { } 103 | "INCLUDE", INCLUDE1, | { } 104 | "CONSTRUCTOR", CONSTRUCTOR, | { } 105 | "DESTRUCTOR", DESTRUCTOR, | { } 106 | "NET_RECEIVE", NETRECEIVE, | { } 107 | "BEFORE", BEFORE, /* before NEURON sets up cy' = f(y,t) */ | { } 108 | "AFTER", AFTER, /* after NEURON solves cy' = f(y, t) */ | { } 109 | "WATCH", WATCH, | { } 110 | "FOR_NETCONS", FOR_NETCONS, | { } 111 | "THREADSAFE", THREADSAFE, | { } 112 | "PROTECT", PROTECT, | { } 113 | 0, 0 | { 114 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:124:29: warning: missing braces around initializer [-Wmissing-braces] 124 | } special[] = { | ^ 125 | ";", SEMI, &semi, | { } 126 | "{", BEGINBLK, &beginblk, | { } 127 | "}", ENDBLK, &endblk, | { } 128 | 0, 0, 0 | { 129 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/init.c:135:29: warning: missing braces around initializer [-Wmissing-braces] 135 | } methods[] = { | ^ 136 | "adams", DERF | KINF, 0, | { } 137 | "runge", DERF | KINF, 0, | { } 138 | "euler", DERF | KINF, 0, | { } 139 | "adeuler", DERF | KINF, 1, | { } 140 | "heun", DERF | KINF, 0, | { } 141 | "adrunge", DERF | KINF, 1, | { } 142 | "newton", NLINF, 0, | { } 143 | "simplex", NLINF, 0, | { } 144 | "simeq", LINF, 0, | { } 145 | "seidel", LINF, 0, | { } 146 | "_advance", KINF, 0, | { } 147 | "sparse", KINF, 0, | { } 148 | "derivimplicit", DERF, 0, /* name hard wired in deriv.c */ | { } 149 | "cnexp", DERF, 0, | { } 150 | "clsoda", DERF | KINF, 0, /* Tolerance built in to | { } 151 | scopgear.c */ 152 | "after_cvode", 0, 0, | { } 153 | "cvode_t", 0, 0, | { } 154 | "cvode_t_v", 0, 0, | { } 155 | 0, 0, 0 | { 156 | }; | } [ 96%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/io.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/io.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/io.c [ 96%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/kinunit.c [ 96%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/list.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/list.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/list.c [ 96%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/model.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/model.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c: In function 'openfiles': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c:145:36: warning: '%s' directive writing up to 8191 bytes into a region of size 8187 [-Wformat-overflow=] 145 | sprintf(modprefix, "%s", argv[1]); | ^~~~ In file included from /usr/include/stdio.h:866, from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:3, from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.c:27: /usr/include/bits/stdio2.h:38:10: note: '__sprintf_chk' output between 1 and 8192 bytes into a destination of size 8187 38 | return __builtin___sprintf_chk (__s, __USE_FORTIFY_LEVEL - 1, | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | __glibc_objsize (__s), __fmt, | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 40 | __va_arg_pack ()); | ~~~~~~~~~~~~~~~~~ [ 96%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/nrnunit.c [ 97%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/passn.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/passn.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/passn.c [ 97%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c In file included from /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:4: /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c: In function 'lookup': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:27:30: warning: array subscript has type 'char' [-Wchar-subscripts] 27 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:25:38: note: in definition of macro 'ITERATE' 25 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:27:30: warning: array subscript has type 'char' [-Wchar-subscripts] 27 | ITERATE(sp, symlist[s[0]]) { | ~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/model.h:25:58: note: in definition of macro 'ITERATE' 25 | #define ITERATE(itm,lst) for (itm = (lst)->next; itm != (lst); itm = itm->next) | ^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c: In function 'install': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/symbol.c:69:31: warning: array subscript has type 'char' [-Wchar-subscripts] 69 | sl = symlist[s[0]]; | ~^~~ [ 97%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/units.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/units.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:76:1: warning: missing braces around initializer [-Wmissing-braces] 76 | { | ^ 77 | 1e-18, "atto", | { } 78 | 1e-15, "femto", | { } 79 | 1e-12, "pico", | { } 80 | 1e-9, "nano", | { } 81 | 1e-6, "micro", | { } 82 | 1e-3, "milli", | { } 83 | 1e-2, "centi", | { } 84 | 1e-1, "deci", | { } 85 | 1e1, "deka", | { } 86 | 1e2, "hecta", | { } 87 | 1e2, "hecto", | { } 88 | 1e3, "kilo", | { } 89 | 1e6, "mega", | { } 90 | 1e6, "meg", | { } 91 | 1e9, "giga", | { } 92 | 1e12, "tera", | { } 93 | 0.0, 0 | { 94 | }; | } /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'pu': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:660:17: warning: this 'if' clause does not guard... [-Wmisleading-indentation] 660 | if(u > 1) | ^~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:662:25: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if' 662 | return(2); | ^~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'unit_stk_clean': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'punit': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:185:34: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 185 | for (i=usp; i!=unit_stack-1; --i) { | ~~~~~~~~~~^~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c: In function 'unit_init': /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:487:26: warning: array subscript -1 is outside array bounds of 'struct unit[20]' [-Warray-bounds] 487 | usp = unit_stack - 1; | ~~~~~~~~~~~^~~ /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units.c:121:20: note: while referencing 'unit_stack' 121 | static struct unit unit_stack[UNIT_STK_SIZE], *usp; | ^~~~~~~~~~ [ 97%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/units1.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/units1.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/units1.c [ 97%] Building C object src/nrniv/CMakeFiles/modlunit.dir/__/modlunit/version.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -DNRNUNIT=1 -I/builddir/build/BUILD/nrn-7.8.1/src/ivoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnjava -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/oc -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/sundials/shared -I/builddir/build/BUILD/nrn-7.8.1/src -I/builddir/build/BUILD/nrn-7.8.1/src/gnu -I/builddir/build/BUILD/nrn-7.8.1/src/memacs -I/builddir/build/BUILD/nrn-7.8.1/src/mesch -I/builddir/build/BUILD/nrn-7.8.1/src/nrncvode -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/builddir/build/BUILD/nrn-7.8.1/src/nrnpython -I/builddir/build/BUILD/nrn-7.8.1/src/parallel -I/builddir/build/BUILD/nrn-7.8.1/src/sparse -I/builddir/build/BUILD/nrn-7.8.1/src/sparse13 -I/builddir/build/BUILD/nrn-7.8.1/src/sundials -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/cvodes -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/ida -I/builddir/build/BUILD/nrn-7.8.1/src/sundials/shared -I/usr/include/python3.9 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -o CMakeFiles/modlunit.dir/__/modlunit/version.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/modlunit/version.c [ 98%] Linking C executable ../../bin/modlunit cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrniv && /usr/bin/cmake -E cmake_link_script CMakeFiles/modlunit.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/modlunit.dir/__/modlunit/parse1.c.o CMakeFiles/modlunit.dir/__/modlunit/lex.c.o CMakeFiles/modlunit.dir/__/modlunit/consist.c.o CMakeFiles/modlunit.dir/__/modlunit/declare.c.o CMakeFiles/modlunit.dir/__/modlunit/init.c.o CMakeFiles/modlunit.dir/__/modlunit/io.c.o CMakeFiles/modlunit.dir/__/modlunit/kinunit.c.o CMakeFiles/modlunit.dir/__/modlunit/list.c.o CMakeFiles/modlunit.dir/__/modlunit/model.c.o CMakeFiles/modlunit.dir/__/modlunit/nrnunit.c.o CMakeFiles/modlunit.dir/__/modlunit/passn.c.o CMakeFiles/modlunit.dir/__/modlunit/symbol.c.o CMakeFiles/modlunit.dir/__/modlunit/units.c.o CMakeFiles/modlunit.dir/__/modlunit/units1.c.o CMakeFiles/modlunit.dir/__/modlunit/version.c.o -o ../../bin/modlunit make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 98%] Built target modlunit /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/hoc_module.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrnpython/CMakeFiles/hoc_module.dir/build.make src/nrnpython/CMakeFiles/hoc_module.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E copy_if_different /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/constants.py /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/constants.py cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/demo /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/demo make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 98%] Built target hoc_module /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython/CMakeFiles/rxdmath.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f src/nrnpython/CMakeFiles/rxdmath.dir/build.make src/nrnpython/CMakeFiles/rxdmath.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Building C object src/nrnpython/CMakeFiles/rxdmath.dir/rxdmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/lib64/openmpi/bin/mpicc -DHAVE_CONFIG_H -Drxdmath_EXPORTS -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -o CMakeFiles/rxdmath.dir/rxdmath.c.o -c /builddir/build/BUILD/nrn-7.8.1/src/nrnpython/rxdmath.c [ 99%] Linking C shared library ../../lib/librxdmath.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E cmake_link_script CMakeFiles/rxdmath.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicc -fPIC -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -shared -Wl,-soname,librxdmath.so.0.0.0 -o ../../lib/librxdmath.so.0.0.0 CMakeFiles/rxdmath.dir/rxdmath.c.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython && /usr/bin/cmake -E cmake_symlink_library ../../lib/librxdmath.so.0.0.0 ../../lib/librxdmath.so.0.0.0 ../../lib/librxdmath.so make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Built target rxdmath /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Nothing to be done for 'share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir/build'. make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Built target rxd_cython_generated /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d && bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/runpy.sh /usr/bin/python3.9 runpy /usr/bin/python3.9 + echo runpy /usr/bin/python3.9 + pyexe=/usr/bin/python3.9 + mingw= + shift + test x = x1 + /usr/bin/python3.9 setup.py build_ext --build-lib=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib/python running build_ext make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Built target rx3dextensions_0 /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build.make share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[2]: Nothing to be done for 'share/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir/build'. make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Built target rx3d /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/rxdmod.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f test/CMakeFiles/rxdmod.dir/build.make test/CMakeFiles/rxdmod.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/test/rxd && /usr/bin/cmake -E env NEURONHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn NRNHOME=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi LD_LIBRARY_PATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib:/usr/lib64/openmpi/lib PYTHONPATH=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib/python:/builddir/build/BUILD/nrn-7.8.1/test/rxd: /bin/bash /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nrnivmodl ./ecs which: no xcrun in (/usr/lib64/openmpi/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin) /builddir/build/BUILD/nrn-7.8.1/test/rxd ls: cannot access './ecs/*.inc': No such file or directory ./ecs/pump.mod pump.mod make[3]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' -> Compiling mod_func.c cc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/include -fPIC -c mod_func.c -o mod_func.o -> NMODL pump.mod MODLUNIT=/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/nrnunits.lib \ /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/bin/nocmodl pump.mod Translating pump.mod into pump.c Thread Safe -> Compiling x86_64/pump.c (cd .. ; cc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I. -I.. -I/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/include -fPIC -c x86_64/pump.c -o x86_64/pump.o) x86_64/pump.c:101:34: warning: missing braces around initializer [-Wmissing-braces] 101 | static VoidFunc hoc_intfunc[] = { | ^ 102 | "setdata_pump", _hoc_setdata, | { } 103 | 0, 0 | { 104 | }; | } x86_64/pump.c:114:44: warning: missing braces around initializer [-Wmissing-braces] 114 | static HocParmLimits _hoc_parm_limits[] = { | ^ 115 | 0,0,0 | { { 116 | }; | }} x86_64/pump.c:117:42: warning: missing braces around initializer [-Wmissing-braces] 117 | static HocParmUnits _hoc_parm_units[] = { | ^ 118 | "imax_pump", "mA/cm2", | { } 119 | "Kd_pump", "mM", | { } 120 | "ix_pump", "mA/cm2", | { } 121 | "i_pump", "mA/cm2", | { } 122 | 0,0 | { 123 | }; | } x86_64/pump.c:125:33: warning: missing braces around initializer [-Wmissing-braces] 125 | static DoubScal hoc_scdoub[] = { | ^ 126 | "imax_pump", &imax_pump, | { } 127 | "Kd_pump", &Kd_pump, | { } 128 | 0,0 | { 129 | }; | } x86_64/pump.c:130:31: warning: missing braces around initializer [-Wmissing-braces] 130 | static DoubVec hoc_vdoub[] = { | ^ 131 | 0,0,0 | { 132 | }; | } x86_64/pump.c: In function '_pump_reg': x86_64/pump.c:182:13: warning: unused variable '_vectorized' [-Wunused-variable] 182 | int _vectorized = 1; | ^~~~~~~~~~~ x86_64/pump.c: In function 'initmodel': x86_64/pump.c:240:18: warning: unused variable '_save' [-Wunused-variable] 240 | int _i; double _save;{ | ^~~~~ x86_64/pump.c:240:7: warning: unused variable '_i' [-Wunused-variable] 240 | int _i; double _save;{ | ^~ x86_64/pump.c: In function '_nrn_jacob__pump': x86_64/pump.c:328:35: warning: variable '_thread' set but not used [-Wunused-but-set-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~~ x86_64/pump.c:328:20: warning: unused variable '_ppvar' [-Wunused-variable] 328 | double* _p; Datum* _ppvar; Datum* _thread; | ^~~~~~ x86_64/pump.c: In function '_initlists': x86_64/pump.c:359:6: warning: unused variable '_i' [-Wunused-variable] 359 | int _i; static int _first = 1; | ^~ x86_64/pump.c:358:21: warning: unused variable '_p' [-Wunused-variable] 358 | double _x; double* _p = &_x; | ^~ At top level: x86_64/pump.c:355:13: warning: 'terminal' defined but not used [-Wunused-function] 355 | static void terminal(){} | ^~~~~~~~ x86_64/pump.c:215:13: warning: '_modl_cleanup' defined but not used [-Wunused-function] 215 | static void _modl_cleanup(){ _match_recurse=1;} | ^~~~~~~~~~~~~ x86_64/pump.c:213:12: warning: '_ninits' defined but not used [-Wunused-variable] 213 | static int _ninits = 0; | ^~~~~~~ x86_64/pump.c:212:12: warning: 'error' defined but not used [-Wunused-variable] 212 | static int error; | ^~~~~ x86_64/pump.c:210:14: warning: 'modelname' defined but not used [-Wunused-variable] 210 | static char *modelname = ""; | ^~~~~~~~~ x86_64/pump.c:209:12: warning: '_reset' defined but not used [-Wunused-variable] 209 | static int _reset; | ^~~~~~ x86_64/pump.c:133:16: warning: '_sav_indep' defined but not used [-Wunused-variable] 133 | static double _sav_indep; | ^~~~~~~~~~ => LINKING library x86_64/libnrnmech.so Mod files: pump.mod (cd .. ; g++ -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -shared -fPIC -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -I /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/include -o x86_64/libnrnmech.so -Wl,-soname,libnrnmech.so \ x86_64/mod_func.o x86_64/pump.o -L/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib -lnrniv -Wl,-rpath,/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib -lreadline -lcurses -lform -lpython3 -lX11 -lXext) (cd .. ; rm -f x86_64/.libs/libnrnmech.so ; mkdir -p x86_64/.libs ; ln -s ../../x86_64/libnrnmech.so x86_64/.libs/libnrnmech.so) make[3]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/test/rxd/x86_64' Successfully created x86_64/special make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Built target rxdmod /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/depend make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi && /usr/bin/cmake -E cmake_depends "Unix Makefiles" /builddir/build/BUILD/nrn-7.8.1 /builddir/build/BUILD/nrn-7.8.1/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test/CMakeFiles/testneuron.dir/DependInfo.cmake --color= make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/make -f test/CMakeFiles/testneuron.dir/build.make test/CMakeFiles/testneuron.dir/build make[2]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [ 99%] Building CXX object test/CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/test -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/oc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -o CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/test/unit_tests/unit_test.cpp [ 99%] Building CXX object test/CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test && /usr/lib64/openmpi/bin/mpicxx -DHAVE_CONFIG_H -I/builddir/build/BUILD/nrn-7.8.1/test -I/builddir/build/BUILD/nrn-7.8.1/src/nrnoc -I/builddir/build/BUILD/nrn-7.8.1/src/nrniv -I/builddir/build/BUILD/nrn-7.8.1/src/oc -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -std=c++11 -o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -c /builddir/build/BUILD/nrn-7.8.1/test/unit_tests/oc/hoc_interpreter.cpp [100%] Linking CXX executable ../bin/test/testneuron cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test && /usr/bin/cmake -E cmake_link_script CMakeFiles/testneuron.dir/link.txt --verbose=1 /usr/lib64/openmpi/bin/mpicxx -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -rdynamic CMakeFiles/testneuron.dir/unit_tests/unit_test.cpp.o CMakeFiles/testneuron.dir/unit_tests/oc/hoc_interpreter.cpp.o -o ../bin/test/testneuron ../lib/libnrniv.so.0.0.0 -ldl /usr/lib64/libreadline.so -lcurses /usr/lib64/libform.so /usr/lib64/libpython3.9.so /usr/lib64/libinterviews.so.0.0.0 /usr/lib64/libX11.so /usr/lib64/libXext.so cd /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/test && /usr/bin/cmake -E copy_directory /builddir/build/BUILD/nrn-7.8.1/share/lib /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib make[2]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' [100%] Built target testneuron make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' /usr/bin/cmake -E cmake_progress_start /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/CMakeFiles 0 /usr/bin/make -f CMakeFiles/Makefile2 preinstall make[1]: Entering directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' make[1]: Nothing to be done for 'preinstall'. make[1]: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' Install the project... /usr/bin/cmake -P cmake_install.cmake -- Install configuration: "RelWithDebInfo" -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/shape.cm2 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/shape.cm1 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/prologue.id -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/nrnunits.lib.in -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/nrn.defaults.in -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hocload.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/wingroup.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/vplay.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/vecwrap.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/varmeth1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/thresh.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/subiter.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/stdrun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/stdlib.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/stdgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/singlech.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/single1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/single.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/showmech.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/shapebox.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/runfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/rcs.iv -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/rcs.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/prcellstate.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/pointman.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/pointgrp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/pointbsr.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/pcchdir.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/parcom.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/nrngui1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/nrngui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/noload.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netparmpi.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild/syntypes.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild/spkplot.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild/netready.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild/netgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild/netdata.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild/grstrlst.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild/edgegui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild/artcel.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/netbild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/treeview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/secanal.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/realcell.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/rcclasses.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/ppanal.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/parmvals.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/parmsets.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/ncview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/mviewxml.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/mviewgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/mview1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/distinctparm.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/distinct.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/artview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/allpp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/allcell.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mview.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/protorun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/optwrap.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/mulfit1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/fitparm.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/eparmlst.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/eonerun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/eoneprim.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/eonefunc.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/e_y.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/e_xy.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/e_norm.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/e_actpot.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/clampfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mulfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/movierun.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/modlunit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mknrndll.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/mkcurve.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/macload.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/logax.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/loadbal.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/lincir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/lincir/linmech.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/lincir/lingraph.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/lincir/lincir1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/lincir/elmbase.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/lincir/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/lincir.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/kinbuild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/inserter.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/impratio.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/import3d -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/import3d/read_swc.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/import3d/read_nts.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/import3d/read_nlcda3.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/import3d/read_nlcda.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/import3d/read_morphml.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/import3d/import3d_sec.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/import3d/import3d_gui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/import3d/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/import3d.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/impedanx.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/impedanc.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/grapher.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/gatherv.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/funfit.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/family.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/electrod.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/corenrn.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/table.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/sigmoid.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/properties.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/linoid.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/kstrans.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/kstgui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/ksstate.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/ksgate.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/kschanbg.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/gategui.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/exp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/const.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/chanbild1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/chanbild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild/psubset.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild/inhomofn.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild/celtopol.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild/celset.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild/celmemb.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild/celmang.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild/celgeom.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild/celbild1.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/celbild.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/binfo.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/attshape.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/atoltool.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/hoc/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/helpdict -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/cleanup -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/auditscripts -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/auditscripts/saveaudit -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/auditscripts/retrieve.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/auditscripts/notes -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/auditscripts/hocaudit.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/auditscripts/gettarname -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/auditscripts/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/testca.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/sync -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/sync/synchronize.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/sync/start.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/sync/spkplot.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/sync/init.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/sync/demosync.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/sync/cell.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/sync/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/singhhchan.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/singhh.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/singhh.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/release.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/nachan.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/nacaex.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/mcna.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/khhchan.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/invlfire.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/capump.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/camchan.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/cachan1.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/cabpump.mod -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/release.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/reconst.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/pyramid.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/pyramid.nrn -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/nomodel.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/hh.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/hh.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/dynclamp.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/dynclamp.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/dynchan.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/dend3 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/dend3/syn3.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/dend3/dend3.nrn -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/dend3/control.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/dend3/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/dend3.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/demo.ses -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/demo.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/d3init.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/cycle.hoc -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/demo/Makefile.am -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/nrnunits.lib -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/nrn.defaults -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/lib/cleanup -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnpthread.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/spmatrix.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/spconfig.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/section.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/scoplib_ansi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/scoplib.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/options.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/ocmisc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/ocfunc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/oc_ansi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnredef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnran123.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnmpidec.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnmpi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnoc_ml.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnjava.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrniv_mf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnisaac.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrncvode.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnassrt.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnapi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrn_ansi.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nmodlmutex.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/neuron.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/multisplit.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/multicore.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/membfunc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/membdef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/md2redef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/md1redef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/ivstream.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/hocparse.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/hoclist.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/hocgetsym.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/hocdec.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/hocassrt.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/hoc_membf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/hoc.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/cspredef.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/cspmatrix.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/cabvars.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnconf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrncvode -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrncvode/nrnneosm.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnmpiuse.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nrniv -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nocmodl -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/modlunit -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/libnrniv.so.0.0.0 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/libnrniv.so -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/share/nrn/nrnmain.cpp -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnmpiuse.h -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrncvode/nrnneosm.h -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/include/nrnconf.h -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nrngui -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/neurondemo -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nrnivmodl -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nrnmech_makefile -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nrnpyenv.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/sortspike -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/mkthreadsafe -- Up-to-date: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nrnpyenv.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/set_nrnpyenv.sh -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/librxdmath.so.0.0.0 -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/librxdmath.so -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/python -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/python/neuron -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/python/neuron/rxd -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d/setup.py -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d/CMakeFiles -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir -- Installing: /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/python/neuron/rxd/constants.py make: Leaving directory '/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi' + RPM_LD_FLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib' + pushd x86_64-redhat-linux-gnu-openmpi/src/nrnpython/ ~/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/src/nrnpython ~/build/BUILD/nrn-7.8.1 + CFLAGS=' -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib' + /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s' running build running build_py creating build creating build/lib.linux-x86_64-3.9 creating build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/__init__.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/coreneuron.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/doc.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/gui.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/hclass2.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/hclass3.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/nonvint_block_supervisor.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/psection.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/sections.py -> build/lib.linux-x86_64-3.9/neuron copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/units.py -> build/lib.linux-x86_64-3.9/neuron creating build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/neuroml/__init__.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/neuroml/biophysics.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/neuroml/metadata.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/neuroml/morphml.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/neuroml/neuroml.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/neuroml/rdxml.py -> build/lib.linux-x86_64-3.9/neuron/neuroml copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/neuroml/xml2nrn.py -> build/lib.linux-x86_64-3.9/neuron/neuroml creating build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/tests/__init__.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/tests/_subclass.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/tests/test_all.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/tests/test_neuron.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/tests/test_rxd.py -> build/lib.linux-x86_64-3.9/neuron/tests copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/tests/test_vector.py -> build/lib.linux-x86_64-3.9/neuron/tests creating build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/__init__.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/dimension3.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/export.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/generalizedReaction.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/gui.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/initializer.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/multiCompartmentReaction.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/node.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/nodelist.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/options.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/plugins.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/rangevar.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/rate.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/reaction.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/region.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/rxdException.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/rxdmath.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/rxdsection.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/section1d.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/species.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/rxd.py -> build/lib.linux-x86_64-3.9/neuron/rxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/constants.py -> build/lib.linux-x86_64-3.9/neuron/rxd creating build/lib.linux-x86_64-3.9/neuron/crxd copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/crxd/__init__.py -> build/lib.linux-x86_64-3.9/neuron/crxd creating build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/gui2/__init__.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/gui2/config.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/gui2/plotshape.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/gui2/rangevar.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/gui2/setup_threejs.py -> build/lib.linux-x86_64-3.9/neuron/gui2 copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/gui2/utilities.py -> build/lib.linux-x86_64-3.9/neuron/gui2 creating build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry3d/FullJoinMorph.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry3d/GeneralizedVoxelization.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry3d/__init__.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry3d/scalarField.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry3d/simplevolume_helper.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry3d/surface.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry3d/surface_a.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry3d/triangularMesh.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry3d/voxelize.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d copying /builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/share/nrn/lib/python/neuron/rxd/geometry3d/voxelize2.py -> build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d running build_ext building 'neuron.hoc' extension creating build/temp.linux-x86_64-3.9 /usr/lib64/openmpi/bin/mpicc -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fstack-protector-strong -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fPIC -DNRNCMAKE=1 -I/builddir/build/BUILD/nrn-7.8.1/src/oc -I../oc -I/builddir/build/BUILD/nrn-7.8.1/src/nrnmpi -I/usr/include/python3.9 -c inithoc.cpp -o build/temp.linux-x86_64-3.9/inithoc.o /usr/lib64/openmpi/bin/mpicxx -pthread -shared -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -g -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection build/temp.linux-x86_64-3.9/inithoc.o -L/usr/lib64/openmpi/lib -L/usr/include/../lib -L/builddir/build/BUILD/nrn-7.8.1/x86_64-redhat-linux-gnu-openmpi/lib -L/usr/lib64 -lnrniv -linterviews -o build/lib.linux-x86_64-3.9/neuron/hoc.cpython-39-x86_64-linux-gnu.so -Wl,-R/usr/lib64/openmpi/lib -Wl,-R/usr/include/../lib + CFLAGS=' -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -L/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib' + /usr/bin/python3 setup.py install -O1 --skip-build --root /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 --install-lib /usr/lib64/python3.9/site-packages/openmpi running install running install_lib creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron copying build/lib.linux-x86_64-3.9/neuron/hoc.cpython-39-x86_64-linux-gnu.so -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/utilities.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/setup_threejs.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/rangevar.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/plotshape.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/config.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2 copying build/lib.linux-x86_64-3.9/neuron/gui2/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2 creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/crxd copying build/lib.linux-x86_64-3.9/neuron/crxd/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/crxd creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/voxelize2.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/voxelize.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/triangularMesh.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/surface_a.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/surface.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/simplevolume_helper.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/scalarField.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/GeneralizedVoxelization.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry3d/FullJoinMorph.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d copying build/lib.linux-x86_64-3.9/neuron/rxd/constants.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxd.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/species.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/section1d.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxdsection.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxdmath.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rxdException.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/region.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/reaction.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rate.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/rangevar.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/plugins.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/options.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/nodelist.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/node.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/multiCompartmentReaction.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/initializer.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/gui.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/geometry.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/generalizedReaction.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/export.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/dimension3.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd copying build/lib.linux-x86_64-3.9/neuron/rxd/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_vector.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_rxd.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_neuron.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/test_all.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/_subclass.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests copying build/lib.linux-x86_64-3.9/neuron/tests/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests creating /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/xml2nrn.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/rdxml.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/neuroml.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/morphml.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/metadata.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/biophysics.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/neuroml/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml copying build/lib.linux-x86_64-3.9/neuron/units.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron copying build/lib.linux-x86_64-3.9/neuron/sections.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron copying build/lib.linux-x86_64-3.9/neuron/psection.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron copying build/lib.linux-x86_64-3.9/neuron/nonvint_block_supervisor.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron copying build/lib.linux-x86_64-3.9/neuron/hclass3.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron copying build/lib.linux-x86_64-3.9/neuron/hclass2.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron copying build/lib.linux-x86_64-3.9/neuron/gui.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron copying build/lib.linux-x86_64-3.9/neuron/doc.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron copying build/lib.linux-x86_64-3.9/neuron/coreneuron.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron copying build/lib.linux-x86_64-3.9/neuron/__init__.py -> /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2/utilities.py to utilities.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2/setup_threejs.py to setup_threejs.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2/rangevar.py to rangevar.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2/plotshape.py to plotshape.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2/config.py to config.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui2/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/crxd/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d/voxelize2.py to voxelize2.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d/voxelize.py to voxelize.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d/triangularMesh.py to triangularMesh.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d/surface_a.py to surface_a.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d/surface.py to surface.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d/simplevolume_helper.py to simplevolume_helper.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d/scalarField.py to scalarField.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d/GeneralizedVoxelization.py to GeneralizedVoxelization.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry3d/FullJoinMorph.py to FullJoinMorph.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/constants.py to constants.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/rxd.py to rxd.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/species.py to species.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/section1d.py to section1d.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/rxdsection.py to rxdsection.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/rxdmath.py to rxdmath.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/rxdException.py to rxdException.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/region.py to region.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/reaction.py to reaction.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/rate.py to rate.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/rangevar.py to rangevar.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/plugins.py to plugins.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/options.py to options.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/nodelist.py to nodelist.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/node.py to node.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/multiCompartmentReaction.py to multiCompartmentReaction.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/initializer.py to initializer.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/gui.py to gui.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/geometry.py to geometry.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/generalizedReaction.py to generalizedReaction.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/export.py to export.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/dimension3.py to dimension3.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/rxd/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests/test_vector.py to test_vector.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests/test_rxd.py to test_rxd.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests/test_neuron.py to test_neuron.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests/test_all.py to test_all.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests/_subclass.py to _subclass.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/tests/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml/xml2nrn.py to xml2nrn.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml/rdxml.py to rdxml.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml/neuroml.py to neuroml.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml/morphml.py to morphml.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml/metadata.py to metadata.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml/biophysics.py to biophysics.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/neuroml/__init__.py to __init__.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/units.py to units.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/sections.py to sections.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/psection.py to psection.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/nonvint_block_supervisor.py to nonvint_block_supervisor.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/hclass3.py to hclass3.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/hclass2.py to hclass2.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/gui.py to gui.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/doc.py to doc.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/coreneuron.py to coreneuron.cpython-39.pyc byte-compiling /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/__init__.py to __init__.cpython-39.pyc writing byte-compilation script '/tmp/tmpo0594776.py' /usr/bin/python3 /tmp/tmpo0594776.py removing /tmp/tmpo0594776.py running install_data running install_egg_info Writing /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/NEURON-7.8-py3.9.egg-info + rm -rfv /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/__pycache__ + popd ~/build/BUILD/nrn-7.8.1 ~/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib ~/build/BUILD/nrn-7.8.1 + pushd /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/ + ln -sv ./libnrniv.so.0.0.0 libnrniv.so.0 'libnrniv.so.0' -> './libnrniv.so.0.0.0' + ln -sv ./librxdmath.so.0.0.0 librxdmath.so.0 'librxdmath.so.0' -> './librxdmath.so.0.0.0' ~/build/BUILD/nrn-7.8.1 + popd + rm -rfv /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/python/neuron/ removed '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/python/neuron/rxd/constants.py' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d/CMakeFiles/rxd_cython_generated.dir' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3dextensions_0.dir' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d/CMakeFiles/rx3d.dir' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d/CMakeFiles' removed '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d/setup.py' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/python/neuron/rxd/geometry3d' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/python/neuron/rxd' removed directory '/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/python/neuron/' + find . /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/ -name '*.o' -exec rm -f '{}' ';' + find . /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/lib/ -name '*.la' -exec rm -f '{}' ';' + rm -rf /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/include/ivstream.h + rm -fv /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/share/nrn/libtool + '[' x_openmpi '!=' x ']' + rm -rf /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/share/nrn/demo + pushd /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64//usr/lib64/openmpi/bin/ ~/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin ~/build/BUILD/nrn-7.8.1 + sed -i s/nrniv/nrniv_openmpi/g nrngui + sed -i -e s/nrniv/nrniv_openmpi/g -e s/nrnmech_makefile/nrnmech_makefile_openmpi/g -e s/nocmodl/nocmodl_openmpi/g nrnivmodl + sed -i -e s/nocmodl/nocmodl_openmpi/g nrnmech_makefile + sed -i -e s/nocmodl/nocmodl_openmpi/g mkthreadsafe + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v modlunit modlunit_openmpi renamed 'modlunit' -> 'modlunit_openmpi' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v neurondemo neurondemo_openmpi renamed 'neurondemo' -> 'neurondemo_openmpi' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v nrngui nrngui_openmpi renamed 'nrngui' -> 'nrngui_openmpi' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v nrniv nrniv_openmpi renamed 'nrniv' -> 'nrniv_openmpi' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v sortspike sortspike_openmpi renamed 'sortspike' -> 'sortspike_openmpi' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v mkthreadsafe mkthreadsafe_openmpi renamed 'mkthreadsafe' -> 'mkthreadsafe_openmpi' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v nocmodl nocmodl_openmpi renamed 'nocmodl' -> 'nocmodl_openmpi' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v nrnivmodl nrnivmodl_openmpi renamed 'nrnivmodl' -> 'nrnivmodl_openmpi' + for f in modlunit neurondemo nrngui nrniv sortspike mkthreadsafe nocmodl nrnivmodl nrnmech_makefile + mv -v nrnmech_makefile nrnmech_makefile_openmpi renamed 'nrnmech_makefile' -> 'nrnmech_makefile_openmpi' + mv -v nrnpyenv.sh nrnpyenv_openmpi.sh renamed 'nrnpyenv.sh' -> 'nrnpyenv_openmpi.sh' + mv -v set_nrnpyenv.sh set_nrnpyenv_openmpi.sh renamed 'set_nrnpyenv.sh' -> 'set_nrnpyenv_openmpi.sh' ~/build/BUILD/nrn-7.8.1 + popd + . /etc/profile.d/modules.sh ++ . /etc/profile.d/00-modulepath.sh +++ '[' -z /etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ']' +++ : ++ '[' -z '' ']' ++ LMOD_ALLOW_ROOT_USE=yes ++ '[' -n '' ']' ++ '[' yes '!=' yes ']' ++ '[' -z /usr/share/modulefiles ']' ++ findExec PS_CMD /usr/bin/ps ps ++ Nm=PS_CMD ++ confPath=/usr/bin/ps ++ execNm=ps ++ eval PS_CMD=/usr/bin/ps +++ PS_CMD=/usr/bin/ps ++ '[' '!' -x /usr/bin/ps ']' ++ unset Nm confPath execNm ++ findExec EXPR_CMD /usr/bin/expr expr ++ Nm=EXPR_CMD ++ confPath=/usr/bin/expr ++ execNm=expr ++ eval EXPR_CMD=/usr/bin/expr +++ EXPR_CMD=/usr/bin/expr ++ '[' '!' -x /usr/bin/expr ']' ++ unset Nm confPath execNm ++ findExec BASENAME_CMD /usr/bin/basename basename ++ Nm=BASENAME_CMD ++ confPath=/usr/bin/basename ++ execNm=basename ++ eval BASENAME_CMD=/usr/bin/basename +++ BASENAME_CMD=/usr/bin/basename ++ '[' '!' -x /usr/bin/basename ']' ++ unset Nm confPath execNm ++ unset -f findExec +++ /usr/bin/ps -p 53131 -ocomm= ++ my_shell=sh +++ /usr/bin/expr sh : '-*\(.*\)' ++ my_shell=sh +++ /usr/bin/basename sh ++ my_shell=sh ++ '[' -f /usr/share/lmod/lmod/init/sh ']' ++ . /usr/share/lmod/lmod/init/sh +++ LMOD_ROOT=/usr/share/lmod +++ LMOD_PKG=/usr/share/lmod/lmod +++ LMOD_DIR=/usr/share/lmod/lmod/libexec/ +++ LMOD_CMD=/usr/share/lmod/lmod/libexec/lmod +++ MODULESHOME=/usr/share/lmod/lmod +++ export LMOD_CMD +++ export LMOD_PKG +++ export LMOD_DIR +++ export MODULESHOME +++ export LMOD_DIR ++ unset my_shell PS_CMD EXPR_CMD BASENAME_CMD MODULEPATH_INIT LMOD_ALLOW_ROOT_USE + module unload mpi/openmpi-x86_64 ++ /usr/share/lmod/lmod/libexec/lmod sh unload mpi/openmpi-x86_64 + eval unset '__LMOD_REF_COUNT_LD_LIBRARY_PATH;' unset 'LD_LIBRARY_PATH;' unset '__LMOD_REF_COUNT_LOADEDMODULES;' unset 'LOADEDMODULES;' '__LMOD_REF_COUNT_MANPATH=/usr/share/lmod/lmod/share/man:1;' export '__LMOD_REF_COUNT_MANPATH;' 'MANPATH=/usr/share/lmod/lmod/share/man;' export 'MANPATH;' 'MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core;' export 'MODULEPATH;' unset 'MPI_BIN;' unset 'MPI_COMPILER;' unset 'MPI_FORTRAN_MOD_DIR;' unset 'MPI_HOME;' unset 'MPI_INCLUDE;' unset 'MPI_LIB;' unset 'MPI_MAN;' unset 'MPI_PYTHON3_SITEARCH;' unset 'MPI_SUFFIX;' unset 'MPI_SYSCONFIG;' '__LMOD_REF_COUNT_PATH=/builddir/.local/bin:1\;/builddir/bin:1\;/usr/bin:1\;/bin:1\;/usr/sbin:1\;/sbin:1\;/usr/local/sbin:1;' export '__LMOD_REF_COUNT_PATH;' 'PATH=/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin;' export 'PATH;' '__LMOD_REF_COUNT_PKG_CONFIG_PATH=/usr/lib64/pkgconfig:1\;/usr/share/pkgconfig:1;' export '__LMOD_REF_COUNT_PKG_CONFIG_PATH;' 'PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig;' export 'PKG_CONFIG_PATH;' unset '__LMOD_REF_COUNT__LMFILES_;' unset '_LMFILES_;' '_ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXt9LG1wYXRoQT17Ii9ldGMvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzIiwiL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eCIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvQ29yZSIsIi91c3Ivc2hhcmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0sWyJzeXN0ZW1CYXNlTVBBVEgiXT0iL2V0Yy9tb2R1bGVmaWxlczovdXNyL3NoYXJlL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvTGludXg6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9Db3JlOi91c3Ivc2hh;' export '_ModuleTable001_;' '_ModuleTable002_=cmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0=;' export '_ModuleTable002_;' '_ModuleTable_Sz_=2;' export '_ModuleTable_Sz_;' ++ unset __LMOD_REF_COUNT_LD_LIBRARY_PATH ++ unset LD_LIBRARY_PATH ++ unset __LMOD_REF_COUNT_LOADEDMODULES ++ unset LOADEDMODULES ++ __LMOD_REF_COUNT_MANPATH=/usr/share/lmod/lmod/share/man:1 ++ export __LMOD_REF_COUNT_MANPATH ++ MANPATH=/usr/share/lmod/lmod/share/man ++ export MANPATH ++ MODULEPATH=/etc/modulefiles:/usr/share/modulefiles:/usr/share/modulefiles/Linux:/usr/share/modulefiles/Core:/usr/share/lmod/lmod/modulefiles/Core ++ export MODULEPATH ++ unset MPI_BIN ++ unset MPI_COMPILER ++ unset MPI_FORTRAN_MOD_DIR ++ unset MPI_HOME ++ unset MPI_INCLUDE ++ unset MPI_LIB ++ unset MPI_MAN ++ unset MPI_PYTHON3_SITEARCH ++ unset MPI_SUFFIX ++ unset MPI_SYSCONFIG ++ __LMOD_REF_COUNT_PATH='/builddir/.local/bin:1;/builddir/bin:1;/usr/bin:1;/bin:1;/usr/sbin:1;/sbin:1;/usr/local/sbin:1' ++ export __LMOD_REF_COUNT_PATH ++ PATH=/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin ++ export PATH ++ __LMOD_REF_COUNT_PKG_CONFIG_PATH='/usr/lib64/pkgconfig:1;/usr/share/pkgconfig:1' ++ export __LMOD_REF_COUNT_PKG_CONFIG_PATH ++ PKG_CONFIG_PATH=:/usr/lib64/pkgconfig:/usr/share/pkgconfig ++ export PKG_CONFIG_PATH ++ unset __LMOD_REF_COUNT__LMFILES_ ++ unset _LMFILES_ ++ _ModuleTable001_=X01vZHVsZVRhYmxlXz17WyJNVHZlcnNpb24iXT0zLFsiY19yZWJ1aWxkVGltZSJdPWZhbHNlLFsiY19zaG9ydFRpbWUiXT1mYWxzZSxkZXB0aFQ9e30sZmFtaWx5PXt9LG1UPXt9LG1wYXRoQT17Ii9ldGMvbW9kdWxlZmlsZXMiLCIvdXNyL3NoYXJlL21vZHVsZWZpbGVzIiwiL3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9MaW51eCIsIi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvQ29yZSIsIi91c3Ivc2hhcmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0sWyJzeXN0ZW1CYXNlTVBBVEgiXT0iL2V0Yy9tb2R1bGVmaWxlczovdXNyL3NoYXJlL21vZHVsZWZpbGVzOi91c3Ivc2hhcmUvbW9kdWxlZmlsZXMvTGludXg6L3Vzci9zaGFyZS9tb2R1bGVmaWxlcy9Db3JlOi91c3Ivc2hh ++ export _ModuleTable001_ ++ _ModuleTable002_=cmUvbG1vZC9sbW9kL21vZHVsZWZpbGVzL0NvcmUiLH0= ++ export _ModuleTable002_ ++ _ModuleTable_Sz_=2 ++ export _ModuleTable_Sz_ + /usr/lib/rpm/find-debuginfo.sh -j2 --strict-build-id -m -i --build-id-seed 7.8.1-8.fc34 --unique-debug-suffix -7.8.1-8.fc34.x86_64 --unique-debug-src-base neuron-7.8.1-8.fc34.x86_64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 -S debugsourcefiles.list /builddir/build/BUILD/nrn-7.8.1 explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nocmodl explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/modlunit extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/modlunit extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nocmodl explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nrniv extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/bin/nrniv explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/libnrniv.so.0.0.0 extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/libnrniv.so.0.0.0 explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/librxdmath.so.0.0.0 extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/librxdmath.so.0.0.0 explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/modlunit_mpich extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/modlunit_mpich explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nocmodl_mpich extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nocmodl_mpich explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nrniv_mpich extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/bin/nrniv_mpich explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/libnrniv.so.0.0.0 extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/libnrniv.so.0.0.0 explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/librxdmath.so.0.0.0 extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/mpich/lib/librxdmath.so.0.0.0 explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/modlunit_openmpi extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/modlunit_openmpi explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nocmodl_openmpi extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nocmodl_openmpi explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nrniv_openmpi extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/bin/nrniv_openmpi explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/libnrniv.so.0.0.0 extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/libnrniv.so.0.0.0 explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/librxdmath.so.0.0.0 extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/openmpi/lib/librxdmath.so.0.0.0 explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/hoc.cpython-39-x86_64-linux-gnu.so extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/mpich/neuron/hoc.cpython-39-x86_64-linux-gnu.so explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/hoc.cpython-39-x86_64-linux-gnu.so extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/neuron/hoc.cpython-39-x86_64-linux-gnu.so explicitly decompress any DWARF compressed ELF sections in /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/hoc.cpython-39-x86_64-linux-gnu.so extracting debug info from /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9/site-packages/openmpi/neuron/hoc.cpython-39-x86_64-linux-gnu.so original debug info size: 57460kB, size after compression: 43232kB /usr/lib/rpm/sepdebugcrcfix: Updated 18 CRC32s, 0 CRC32s did match. 16362 blocks + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 Bytecompiling .py files below /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/debug/usr/lib64/python3.9 using /usr/bin/python3.9 Bytecompiling .py files below /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib/python3.9 using /usr/bin/python3.9 Bytecompiling .py files below /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/lib64/python3.9 using /usr/bin/python3.9 + /usr/lib/rpm/brp-python-hardlink + /usr/lib/rpm/redhat/brp-mangle-shebangs mangling shebang in /usr/lib64/openmpi/bin/set_nrnpyenv_openmpi.sh from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/lib64/openmpi/bin/nrnpyenv_openmpi.sh from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/lib64/openmpi/bin/nrnivmodl_openmpi from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/lib64/openmpi/bin/mkthreadsafe_openmpi from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/lib64/openmpi/bin/sortspike_openmpi from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/lib64/openmpi/bin/nrngui_openmpi from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/lib64/openmpi/bin/neurondemo_openmpi from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/lib64/openmpi/share/nrn/lib/cleanup from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/lib64/mpich/bin/set_nrnpyenv_mpich.sh from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/lib64/mpich/bin/nrnpyenv_mpich.sh from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/lib64/mpich/bin/nrnivmodl_mpich from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/lib64/mpich/bin/mkthreadsafe_mpich from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/lib64/mpich/bin/sortspike_mpich from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/lib64/mpich/bin/nrngui_mpich from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/lib64/mpich/bin/neurondemo_mpich from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/lib64/mpich/share/nrn/lib/cleanup from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/bin/set_nrnpyenv.sh from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/bin/mkthreadsafe from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/bin/sortspike from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/bin/nrnpyenv.sh from /bin/bash to #!/usr/bin/bash mangling shebang in /usr/bin/nrnivmodl from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/bin/neurondemo from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/bin/nrngui from /bin/sh to #!/usr/bin/sh mangling shebang in /usr/share/nrn/lib/cleanup from /bin/sh to #!/usr/bin/sh Processing files: neuron-7.8.1-8.fc34.x86_64 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.ARHnsu + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + LICENSEDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron + cp -pr Copyright /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron + RPM_EC=0 ++ jobs -p + exit 0 Provides: bundled(sundials) = 2.0.1 libnrniv.so.0.0.0()(64bit) librxdmath.so.0.0.0()(64bit) neuron = 7.8.1-8.fc34 neuron(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/bash /usr/bin/sh libX11.so.6()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.11)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.2)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.33)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libdl.so.2()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libinterviews.so.0.0.0()(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libm.so.6(GLIBC_2.29)(64bit) libnrniv.so.0.0.0()(64bit) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libpython3.9.so.1.0()(64bit) libreadline.so.8()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) libstdc++.so.6(GLIBCXX_3.4.11)(64bit) libstdc++.so.6(GLIBCXX_3.4.15)(64bit) libstdc++.so.6(GLIBCXX_3.4.20)(64bit) libstdc++.so.6(GLIBCXX_3.4.21)(64bit) libstdc++.so.6(GLIBCXX_3.4.9)(64bit) libtinfo.so.6()(64bit) rtld(GNU_HASH) Processing files: neuron-devel-7.8.1-8.fc34.x86_64 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.NLV4jB + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + DOCDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/doc/neuron-devel + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/doc/neuron-devel + cp -pr README.md /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/doc/neuron-devel + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.Y7tgot + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + LICENSEDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-devel + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-devel + cp -pr Copyright /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-devel + RPM_EC=0 ++ jobs -p + exit 0 Provides: neuron-devel = 7.8.1-8.fc34 neuron-devel(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/bash libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libnrniv.so.0.0.0()(64bit) librxdmath.so.0.0.0()(64bit) rtld(GNU_HASH) Processing files: neuron-doc-7.8.1-8.fc34.noarch Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.EuZlPn + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + LICENSEDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-doc + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-doc + cp -pr Copyright /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-doc + RPM_EC=0 ++ jobs -p + exit 0 Provides: neuron-doc = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Processing files: python3-neuron-7.8.1-8.fc34.x86_64 Provides: python-neuron = 7.8.1-8.fc34 python3-neuron = 7.8.1-8.fc34 python3-neuron(x86-64) = 7.8.1-8.fc34 python3.9-neuron = 7.8.1-8.fc34 python3.9dist(neuron) = 7.8 python3dist(neuron) = 7.8 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libnrniv.so.0.0.0()(64bit) libpthread.so.0()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) python(abi) = 3.9 rtld(GNU_HASH) Processing files: neuron-mpich-7.8.1-8.fc34.x86_64 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.ClIjlK + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + LICENSEDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-mpich + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-mpich + cp -pr Copyright /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-mpich + RPM_EC=0 ++ jobs -p + exit 0 Provides: libnrniv.so.0.0.0()(64bit)(mpich-x86_64) librxdmath.so.0.0.0()(64bit)(mpich-x86_64) neuron-mpich = 7.8.1-8.fc34 neuron-mpich(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/bash /usr/bin/sh libX11.so.6()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.11)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.2)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.33)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libdl.so.2()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libinterviews.so.0.0.0()(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libm.so.6(GLIBC_2.29)(64bit) libmpi.so.12()(64bit)(mpich-x86_64) libnrniv.so.0.0.0()(64bit)(mpich-x86_64) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libpython3.9.so.1.0()(64bit) libreadline.so.8()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) libstdc++.so.6(GLIBCXX_3.4.11)(64bit) libstdc++.so.6(GLIBCXX_3.4.15)(64bit) libstdc++.so.6(GLIBCXX_3.4.20)(64bit) libstdc++.so.6(GLIBCXX_3.4.21)(64bit) libstdc++.so.6(GLIBCXX_3.4.9)(64bit) libtinfo.so.6()(64bit) rtld(GNU_HASH) Processing files: neuron-mpich-devel-7.8.1-8.fc34.x86_64 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.lF3VQR + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + DOCDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/doc/neuron-mpich-devel + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/doc/neuron-mpich-devel + cp -pr README.md /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/doc/neuron-mpich-devel + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.clDF0O + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + LICENSEDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-mpich-devel + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-mpich-devel + cp -pr Copyright /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-mpich-devel + RPM_EC=0 ++ jobs -p + exit 0 Provides: neuron-mpich-devel = 7.8.1-8.fc34 neuron-mpich-devel(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/bash libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libnrniv.so.0.0.0()(64bit)(mpich-x86_64) librxdmath.so.0.0.0()(64bit)(mpich-x86_64) rtld(GNU_HASH) Processing files: python3-neuron-mpich-7.8.1-8.fc34.x86_64 Provides: python-neuron-mpich = 7.8.1-8.fc34 python3-neuron-mpich = 7.8.1-8.fc34 python3-neuron-mpich(x86-64) = 7.8.1-8.fc34 python3.9-neuron-mpich = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libnrniv.so.0.0.0()(64bit)(mpich-x86_64) libstdc++.so.6()(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) python(abi) = 3.9 rtld(GNU_HASH) Processing files: neuron-openmpi-7.8.1-8.fc34.x86_64 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.Ggb5kF + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + LICENSEDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-openmpi + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-openmpi + cp -pr Copyright /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-openmpi + RPM_EC=0 ++ jobs -p + exit 0 Provides: libnrniv.so.0.0.0()(64bit)(openmpi-x86_64) librxdmath.so.0.0.0()(64bit)(openmpi-x86_64) neuron-openmpi = 7.8.1-8.fc34 neuron-openmpi(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/bash /usr/bin/sh libX11.so.6()(64bit) libc.so.6()(64bit) libc.so.6(GLIBC_2.11)(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.2)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.33)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libdl.so.2()(64bit) libgcc_s.so.1()(64bit) libgcc_s.so.1(GCC_3.0)(64bit) libgcc_s.so.1(GCC_3.3.1)(64bit) libinterviews.so.0.0.0()(64bit) libm.so.6()(64bit) libm.so.6(GLIBC_2.2.5)(64bit) libm.so.6(GLIBC_2.29)(64bit) libmpi.so.40()(64bit)(openmpi-x86_64) libnrniv.so.0.0.0()(64bit)(openmpi-x86_64) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) libpthread.so.0(GLIBC_2.3.2)(64bit) libpython3.9.so.1.0()(64bit) libreadline.so.8()(64bit) libstdc++.so.6()(64bit) libstdc++.so.6(CXXABI_1.3)(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) libstdc++.so.6(GLIBCXX_3.4.11)(64bit) libstdc++.so.6(GLIBCXX_3.4.15)(64bit) libstdc++.so.6(GLIBCXX_3.4.20)(64bit) libstdc++.so.6(GLIBCXX_3.4.21)(64bit) libstdc++.so.6(GLIBCXX_3.4.9)(64bit) libtinfo.so.6()(64bit) rtld(GNU_HASH) Processing files: neuron-openmpi-devel-7.8.1-8.fc34.x86_64 Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.xYlNb8 + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + DOCDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/doc/neuron-openmpi-devel + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/doc/neuron-openmpi-devel + cp -pr README.md /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/doc/neuron-openmpi-devel + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.1mB5Rj + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + LICENSEDIR=/builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-openmpi-devel + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-openmpi-devel + cp -pr Copyright /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64/usr/share/licenses/neuron-openmpi-devel + RPM_EC=0 ++ jobs -p + exit 0 Provides: neuron-openmpi-devel = 7.8.1-8.fc34 neuron-openmpi-devel(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: /usr/bin/bash libc.so.6()(64bit) libc.so.6(GLIBC_2.14)(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libc.so.6(GLIBC_2.7)(64bit) libnrniv.so.0.0.0()(64bit)(openmpi-x86_64) libpthread.so.0()(64bit) libpthread.so.0(GLIBC_2.2.5)(64bit) librxdmath.so.0.0.0()(64bit)(openmpi-x86_64) rtld(GNU_HASH) Processing files: python3-neuron-openmpi-7.8.1-8.fc34.x86_64 Provides: python-neuron-openmpi = 7.8.1-8.fc34 python3-neuron-openmpi = 7.8.1-8.fc34 python3-neuron-openmpi(x86-64) = 7.8.1-8.fc34 python3.9-neuron-openmpi = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: libc.so.6()(64bit) libc.so.6(GLIBC_2.2.5)(64bit) libc.so.6(GLIBC_2.3.4)(64bit) libc.so.6(GLIBC_2.4)(64bit) libnrniv.so.0.0.0()(64bit)(openmpi-x86_64) libstdc++.so.6()(64bit) libstdc++.so.6(GLIBCXX_3.4)(64bit) python(abi) = 3.9 rtld(GNU_HASH) Processing files: neuron-debugsource-7.8.1-8.fc34.x86_64 Provides: neuron-debugsource = 7.8.1-8.fc34 neuron-debugsource(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Processing files: neuron-debuginfo-7.8.1-8.fc34.x86_64 Provides: debuginfo(build-id) = 059352e45caf5edbe72d63e2d628892d4652e1b3 debuginfo(build-id) = 18eff87c13f7304050767da2b25b41e5e073ce8f debuginfo(build-id) = e5e50e67edba9502d75afbabe17cf977042d40e8 debuginfo(build-id) = fb38aeaa0ae2ee168a8bf541918c642d1d2e72b4 neuron-debuginfo = 7.8.1-8.fc34 neuron-debuginfo(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: neuron-debugsource(x86-64) = 7.8.1-8.fc34 Processing files: neuron-devel-debuginfo-7.8.1-8.fc34.x86_64 Provides: debuginfo(build-id) = dfffabcdbf5717884a45cea59a5d05240bbb85cd neuron-devel-debuginfo = 7.8.1-8.fc34 neuron-devel-debuginfo(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: neuron-debugsource(x86-64) = 7.8.1-8.fc34 Processing files: python3-neuron-debuginfo-7.8.1-8.fc34.x86_64 Provides: debuginfo(build-id) = 6b310ce6ebf928a4dabb99fa36b608f4d67c86f4 python-neuron-debuginfo = 7.8.1-8.fc34 python3-neuron-debuginfo = 7.8.1-8.fc34 python3-neuron-debuginfo(x86-64) = 7.8.1-8.fc34 python3.9-neuron-debuginfo = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: neuron-debugsource(x86-64) = 7.8.1-8.fc34 Processing files: neuron-mpich-debuginfo-7.8.1-8.fc34.x86_64 Provides: debuginfo(build-id) = 49bf3028652a21fe0a09ba4c0229750b7b0d3ad5 debuginfo(build-id) = 49e0d20962ec15a66e82521103e24c65f7043590 debuginfo(build-id) = a2a7ad0535bc8cc4dda34fb38d7b925636cd07ab debuginfo(build-id) = c20ec6ac98e3f5cfad00299ae8bd92fd0e005e77 neuron-mpich-debuginfo = 7.8.1-8.fc34 neuron-mpich-debuginfo(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: neuron-debugsource(x86-64) = 7.8.1-8.fc34 Processing files: neuron-mpich-devel-debuginfo-7.8.1-8.fc34.x86_64 Provides: debuginfo(build-id) = 0e2b29a8eb67aa396e16f4eb4e20bf0b10975a7e neuron-mpich-devel-debuginfo = 7.8.1-8.fc34 neuron-mpich-devel-debuginfo(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: neuron-debugsource(x86-64) = 7.8.1-8.fc34 Processing files: python3-neuron-mpich-debuginfo-7.8.1-8.fc34.x86_64 Provides: debuginfo(build-id) = 5812a2c1ca3e14c62015f7cbc361098ec1fa0dde python-neuron-mpich-debuginfo = 7.8.1-8.fc34 python3-neuron-mpich-debuginfo = 7.8.1-8.fc34 python3-neuron-mpich-debuginfo(x86-64) = 7.8.1-8.fc34 python3.9-neuron-mpich-debuginfo = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: neuron-debugsource(x86-64) = 7.8.1-8.fc34 Processing files: neuron-openmpi-debuginfo-7.8.1-8.fc34.x86_64 Provides: debuginfo(build-id) = 3985a05d87718d9c46d0db561f2f6aae16ecab7a debuginfo(build-id) = 6c719d00a09cd77a72dba89ed2def35b563c599c debuginfo(build-id) = 9490e72cf7ee5bcf017fe387f366e60c723748e8 debuginfo(build-id) = bfb62dd2e518a534f19f9b0b613ed9d5b5beaa7f neuron-openmpi-debuginfo = 7.8.1-8.fc34 neuron-openmpi-debuginfo(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: neuron-debugsource(x86-64) = 7.8.1-8.fc34 Processing files: neuron-openmpi-devel-debuginfo-7.8.1-8.fc34.x86_64 Provides: debuginfo(build-id) = c59af3d6655dd7d5c56f7cc7d3a7c3fdea7af09a neuron-openmpi-devel-debuginfo = 7.8.1-8.fc34 neuron-openmpi-devel-debuginfo(x86-64) = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: neuron-debugsource(x86-64) = 7.8.1-8.fc34 Processing files: python3-neuron-openmpi-debuginfo-7.8.1-8.fc34.x86_64 Provides: debuginfo(build-id) = 65224b97d42fb29a4b54d63af647d7c5da985df4 python-neuron-openmpi-debuginfo = 7.8.1-8.fc34 python3-neuron-openmpi-debuginfo = 7.8.1-8.fc34 python3-neuron-openmpi-debuginfo(x86-64) = 7.8.1-8.fc34 python3.9-neuron-openmpi-debuginfo = 7.8.1-8.fc34 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Recommends: neuron-debugsource(x86-64) = 7.8.1-8.fc34 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 Wrote: /builddir/build/RPMS/neuron-openmpi-debuginfo-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-debuginfo-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-mpich-debuginfo-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-debugsource-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-openmpi-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-mpich-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/python3-neuron-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/python3-neuron-openmpi-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/python3-neuron-mpich-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-openmpi-devel-debuginfo-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-mpich-devel-debuginfo-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-openmpi-devel-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-devel-debuginfo-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-mpich-devel-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-devel-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/python3-neuron-openmpi-debuginfo-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/neuron-doc-7.8.1-8.fc34.noarch.rpm Wrote: /builddir/build/RPMS/python3-neuron-mpich-debuginfo-7.8.1-8.fc34.x86_64.rpm Wrote: /builddir/build/RPMS/python3-neuron-debuginfo-7.8.1-8.fc34.x86_64.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.nqI0Ke + umask 022 + cd /builddir/build/BUILD + cd nrn-7.8.1 + /usr/bin/rm -rf /builddir/build/BUILDROOT/neuron-7.8.1-8.fc34.x86_64 + RPM_EC=0 ++ jobs -p + exit 0 Finish: rpmbuild neuron-7.8.1-8.fc34.src.rpm Finish: build phase for neuron-7.8.1-8.fc34.src.rpm INFO: chroot_scan: 3 files copied to /var/lib/copr-rpmbuild/results/chroot_scan INFO: /var/lib/mock/fedora-rawhide-x86_64-1611696566.830929/root/var/log/dnf.rpm.log /var/lib/mock/fedora-rawhide-x86_64-1611696566.830929/root/var/log/dnf.librepo.log /var/lib/mock/fedora-rawhide-x86_64-1611696566.830929/root/var/log/dnf.log INFO: Done(/var/lib/copr-rpmbuild/results/neuron-7.8.1-8.fc34.src.rpm) Config(child) 29 minutes 4 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